2016-11-07 1 views
0

Я могу получить модель Сообщение для корректной работы has_many и accepts_nested_attributes_for Категория модели. Тем не менее, я хочу ограничить пост, чтобы иметь только одну категорию, в которой я терпит неудачу. Вот пересмотренный код:Ошибка Rais 5 с nested_attributes для отношения has_one

# post.rb 
has_one :category_tag, :dependent => :delete 
has_one :category, through: :category_tag 
accepts_nested_attributes_for :category_tag 

# posts_controller.rb 
def new 
    @post = Post.new 
    @post.category_tag.build 
end 

И^есть проблема: не определен метод «сборки» для ноля: NilClass
Он работал хорошо, когда я использовал has_many :category_tags в модели и @post.category_tags.build
ТИА

ответ

2

has_one Для отношений правильного формат

@post.build_category_tag 
+0

Я использую рельсы 5 и грош решения Мне кажется, что это не работает. 'undefined method build_category_tag' –

+0

Это очень странно! Я перешел к настройкам 'has_many', чтобы продолжить работу над другими аспектами приложения. Однако, когда вы отправили ответ (который не сработал), я попробовал исходную строку (после переключения на параметры has_one) '@ post.category_tag.build' снова, и она работала безупречно. Я помню, что я перезапустил сервер (который не должен был быть проблемой в первую очередь), когда я пытался, что я написал. –

+0

Он должен был быть создан. См. Http://guides.rubyonrails.org/association_basics.html#has-one-association-reference – SteveTurczyn

Смежные вопросы