当我有ActiveRecord模型类的实例时,最简单的方法是什么?

例如,我有这样的模型类:

class Category < ActiveRecord::Base
  ...
end

我有一个类的实例:

category = Category.first

我有YAML文件config/locales/cs.yml:

cs:
  activerecord:
    models:
      category: Kategorie

我需要动态地做这件事,即使我之前不知道要处理哪个模型类的实例.所以我不想显式地指定"activerecord.models.category".

有没有简单的方法?我知道我可以做这样的事

"activerecord.models.#{category.class.name.underscore}"

但必须有更好的方法来做到这一点.

推荐答案

见:

http://api.rubyonrails.org/classes/ActiveModel/Naming.html

例如,在AR类中使用:

Person.model_name.human

或者从AR实例:

person.class.model_name.human

Ruby-on-rails相关问答推荐

用至少一个缺省值初始化Ruby数组的最简洁方法是什么?

我需要在我的 Rails 7 应用程序中保留 app/assets/config/manifest.js 吗?

ActiveRecord 错误地转义 JSON 字符串

rspec中日期时间结束时的分数是多少?

无法在生产服务器上启动 Rails 4 控制台

验证以确保唯一性但忽略空值?

我如何存根 find_each 以在 rails 3 中进行 rspec 测试

.increment vs += 1

Ruby on Rails - link_to 按钮 / css

ActiveRecord 查找现有表索引

Rails 范围为 IS NOT NULL 并且不为空/空白?

Post.all.map(&:id) 是什么意思?

Heroku Postgres 错误:PGError:错误:关系组织不存在(ActiveRecord::StatementInvalid)

Sidekiq 在 docker-compose 上的 127.0.0.1:6379 (Errno::ECONNREFUSED) 上连接到 Redis 时出错

submit_tag rails 表单中的 bootstrap 图标

在 Ruby on Rails 中的控制器中获取 URL 的锚部分

Ruby 安装的 RVM 不工作?

测试和规格有什么区别?

Rails:您已经激活了 rake 10.3.1,但您的 Gemfile 需要 rake 10.2.2 (Gem::LoadError)

为什么 Mac OS X 带有 ruby​​/rails?