在rails3中覆盖模型名称的默认复数。

| 我的语言环境是:de,我喜欢这个:
Sheet.model_name.human.pluralize # => Belegs
给我加上尾随的\“ e \”而不是\“ s \”
Sheet.model_name.human.pluralize # => Belege
仅适用于图纸类。 我可以在我的config / locales / models / de.yml中添加它吗?     
已邀请:
        首先,您需要停止使用
.pluralize
。它使用了Inflector(主要用于Rails内部,例如猜测模型Sheet-> sheets的表名)。
Sheet.model_name.human # => \"Beleg\"
\"Beleg\".pluralize # => \"Belegs\"
您应该做的是使用
:count
选项。
Sheet.model_name.human(:count => 2) # => \"Belege\"
这就要求您对ѭ6进行如下修改:
de:

  ...

  activerecord:

    ...

    models:
      sheet:
        one: Beleg
        other: Belege
    
        您可以通过以下方式覆盖复数形式: 在
config/initializers/inflections.rb
做:
ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular \'Beleg\', \'Belege\'
end
    
        如果您不喜欢显式计数(例如2),则可以使用
:many
,例如
Sheet.model_name.human(count => :many)
或没有哈希火箭(对于Ruby> = 1.9):
Sheet.model_name.human(count: :many)
    

要回复问题请先登录注册