Это мои моделиRuby on Rails, как использовать i18n для поиска вложенных полиморфных?
class Employee < ActiveRecord::Base
has_many addresses, as: :locatable
end
class Client < ActiveRecord::Base
has_many addresses, as: :locatable
end
class Address < ActiveRecord::Base
belongs_to :locatable, polymorphic: true
end
И я установил свои маршруты, чтобы быть
resources :employees do
resources :addresses, :defaults => { :locatable => 'employee'}
end
resources :clients do
resources :addresses, :defaults => { :locatable => 'clients'}
end
И в адресном _form.html.erb, я пытаюсь показать другой текст для адреса сотрудников и клиентов обращаться (например, адрес сотрудника показывает «Это известный адрес сотрудника», а адрес клиента показывает «Клиенты можно найти здесь»).
Это мой i18n файл
en:
employees:
new:
address: 'These are the known employee address'
edit:
address: 'These are the known employee address'
show:
address: 'These are the known employee address'
clients:
new:
address: 'Clients can be found here'
edit:
address: 'Clients can be found here'
show:
address: 'Clients can be found here'
В 2 подхода я могу думать. Первый заключается в использовании Lazy Load
t(.address)
который будет иметь нагрузку повторных меток, так как «новый» и «редактировать» и «показать» все имеют ту же метку. 2-й подход заключается в использовании области видимости, что-то вроде
t .address, scope: [:locatable, :new, :address]
Таким образом, мне не нужно, чтобы отделить адрес в новом, редактировать и шоу. Тем не менее, я не уверен, как получить: локальную область. Или есть лучший подход для этого?
Пожалуйста, помогите!