У меня есть две модели: Foo::Bar
и Bar
. Foo::Bar
принадлежит_от Bar
. Проблема возникает при попытке вызвать @bar.bar
(@bar в этом случае является экземпляром Foo::Bar
).принадлежит_to class_name проблемы с пространством имен
Если определить :class_name
, используя кавычки, тогда все работает, как ожидалось, но если вы сделать не использовать кавычки, то вы получите обратно Foo::Bar
экземпляр вместо более Bar
экземпляра.
Почему разница? Это ошибка в Rails (кстати, я использую Rails 4.0.0RC1)?
не работает
class Foo::Bar < ActiveRecord::Base
belongs_to :bar,
class_name: ::Bar
end
Работы
class Foo::Bar < ActiveRecord::Base
belongs_to :bar,
class_name: '::Bar'
end
Я думаю, вы абсолютно правы. благодаря –