Ответ 1
Это должен быть метод класса, по аналогии с AR-код:
class MyClass
include ActiveModel ...
class << self
def i18n_scope
:activerecord
end
end
end
Я использую Rails 3.1.1, и я хотел бы правильно перевести сообщения об ошибках для ActiveModel
. Я не знаю, является ли переписывание i18n_scope
правильным способом решения моей проблемы (или существуют другие способы), но официальная документация говорит:
i18n_scope()
Возвращает i18n_scope для класса. Перезаписать, если вы хотите настроить поиск.
... как мне переписать i18n_scope
?
В это время я получаю следующее "предупреждение":
# Note the 'activemodel' part
translation missing: de.activemodel.errors.models.my_class.attributes.message.blank
# I would like to "map" translations to 'de.activerecord.errors.messages.blank'
# as made for all other ActiveRecord classes in my application
Мой класс ActiveModel
выглядит следующим образом:
class MyClass
include ActiveModel::Conversion
include ActiveModel::Validations
include ActiveModel::Dirty
extend ActiveModel::Naming
extend ActiveModel::Translation
validates :name, :presence => true
...
end
Это должен быть метод класса, по аналогии с AR-код:
class MyClass
include ActiveModel ...
class << self
def i18n_scope
:activerecord
end
end
end
Я должен извиниться, если мой ответ неверен, но я думаю, что следующая ссылка может быть полезна для вас. http://api.rubyonrails.org/classes/ActiveModel/Errors.html
Это может помочь вам → https://github.com/svenfuchs/activemodel-error
Или вы можете попробовать в файле de.yml
де
activemodel:
errors:
my_class:
attributes:
message:
blank: "your error description"
последнее решение, вы можете использовать этот драгоценный камень → https://github.com/svenfuchs/rails-i18n он автоматически переводит сообщения об ошибках для нас.