2016-11-07 12 views
0

has_manyとモデルカテゴリで正常に動作するモデルポストを取得できました。しかし、私は1つのカテゴリーだけを持つように投稿を制限したい、それは私が失敗しているところです。has_one関係のnested_attributesでRais 5エラーが発生しました

# 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 

そして^問題があります:未定義のメソッド「ビルド」nilのために:ここに改訂されたコードがNilClass私は
TIA

モデルで has_many :category_tags@post.category_tags.buildを使用していたとき、それがうまく働いた

答えて

2

has_one関係の正しい形式は、私は、レール5とソリューションSOUを使用してい

@post.build_category_tag 
+0

です私には奇妙なことがありません。実際には動作していません.. 'undefined method build_category_tag' –

+0

これは非常に奇妙です!私は 'has_many'設定に戻り、アプリケーションの他の側面についても作業を続けました。しかし、あなたが答えを投稿したとき(動作しなかった)、私は元の行(has_one設定に切り替えた後) '@ post.category_tag.build'をもう一度試してみました。私は、私が投稿したものを試していたときに、サーバーを再起動したことを思い出します(最初は問題ではないはずです)。 –

+0

これは作成されているはずです。 http://guides.rubyonrails.org/association_basics.html#hasone-association-reference – SteveTurczyn

関連する問題