Кто-нибудь знает, какое отношение I18n имеет к базе данных?
class DecorativeCentersSalesRepresentative < ActiveRecord::Base
belongs_to :decorative_center, class_name: ::DecorativeCenter
belongs_to :user, class_name: ::SalesRepresentative
end
class DecorativeCenter < ActiveRecord::Base
has_many :decorative_centers_sales_representative
has_many :sales_representatives,
through: :decorative_centers_sales_representative
end
class SalesRepresentative < User
has_many :decorative_centers_sales_representative,
foreign_key: :user_id
has_many :decorative_centers,
through: :decorative_centers_sales_representative,
foreign_key: :user_id
end
Все хорошо, и я могу сделать
SalesRepresentative.last.decorative_centers
SalesRepresentative Load (0.7ms) SELECT `users`.* FROM `users` WHERE `users`.`type` IN ('SalesRepresentative') ORDER BY `users`.`id` DESC LIMIT 1
DecorativeCenter Load (0.3ms) SELECT `decorative_centers`.* FROM `decorative_centers` INNER JOIN `decorative_centers_sales_representative` ON `decorative_centers`.`id` = `decorative_centers_sales_representative`.`decorative_center_id` WHERE `decorative_centers_sales_representative`.`user_id` = 4
#=> [#<DecorativeCenter:0x000000088e5578]
Но когда я сделаю
DecorativeCenter.last.sales_representatives
DecorativeCenter Load (0.2ms) SELECT `decorative_centers`.* FROM `decorative_centers` ORDER BY `decorative_centers`.`id` DESC LIMIT 1
#=> I18n::InvalidLocale: :en is not a valid locale
#=> from /home/andreydeineko/.rvm/gems/ruby-2.3.0@profill-base/gems/i18n-0.7.0/lib/i18n.rb:284:in `enforce_available_locales!'
ПОЧЕМУ??
Я знаю, что это недопустимая локаль, допустимая :pl
:
I18n.available_locales
#=> [:pl]
I18n.default_locale
#=> :pl
Но как эти вещи вообще связаны и почему я могу запросить одним способом, а не другим?
ActiveRecord::Collection
. Однако невозможно сказать, почему без трассировки стека. - person max   schedule 26.01.2016has_many :decorative_centers_sales_representative
не имеет правильного множественного числа. Используйтеdecorative_centers_sales_representatives
. - person max   schedule 26.01.2016DecorativeCenter.last.sales_representatives && nil
- это предотвратит вызов проверки полученного объекта. Если нет исключений, вы знаете, что причиной проблемы являетсяinspect
. У вас есть больше трассировки стека? - person BroiSatse   schedule 26.01.2016DecorativeCenter.last.decorative_centers_sales_representative
- person BroiSatse   schedule 26.01.2016SalesRepresentative
наследуется отUser
(STI), и мне пришлось указатьclass_name
. - person Andrey Deineko   schedule 26.01.2016