###前提・実現したいこと
railsでfields_forの入れ子式フォームを作成したいのですが、子モデルに当たる入力エリアがviewに表示されません。fields_forのモデル指定が上手くいっていないことが原因みたいなのですが、原因がわからず困っております。
articleモデル と movieモデル を 1:1のリレーション。
1:nでなく、1:1で作りたいです。
articles/new内にて、movieの:video_file(paperclipのattachmentです)をいじりたかったのですが、上記問題にぶつかっております。
###発生している問題・エラーメッセージ
undefined method `build' for nil:NilClass controller/articles_controller.rb def new @article = Article.new @article.movie.build big_category_list end
###該当のソースコード
views/articles/new.html.erb <%= form_for @article do |f| %> <div class="field"> <%= f.label :title %> <%= f.text_field :title %> </div> <div class="field"> <%= f.label :big_category %> <%= f.select :big_category, @big_categories %> </div> <div class="field"> <%= f.fields_for :movie do |movie_field| %> <%= movie_field.label :video_file %> <%= movie_field.file_field :video_file %> <% end %> </div> model/article.rb class Article < ActiveRecord::Base ... has_one :movie accepts_nested_attributes_for :movie end model/movie.rb class Movie < ActiveRecord::Base ... belongs_to :article end
###試したこと
<%= f.fields_for :movie do |movie_field| %>
上記モデル指定箇所を@article.movieやMovieなどに変更
※:modelはエラーは吐かず、ただ入力エリアが表示されない
※@article.movieは上述したエラーメッセージを吐く
※Modelはエラーなし、入力エリア表示、しかし保存されない
###補足情報(言語/FW/ツール等のバージョンなど)
まるわかりかと思いますが、当方初学者です。
何卒宜しくお願い致します。
あなたの回答
tips
プレビュー