前提・実現したいこと
外部キーを用いて、データを登録しようとしていますが、なかなかうまくできません。
最終的に、Book.saveで本を登録するときに、Viewでは、category.category_nameのデータをだし、データを保存するときに、category.category_nameを book.category_idとして保存したいです。
が、やりかたがわかりません。おそらくselectをつかうのかなとおもっているのですが、分からないです。
初心者で分からないことが多いですが、よろしくお願いします。
教えて頂けると幸いです。
なお、カラムの種類は
Bookモデル には、title や category_id(FK)など
Categoryモデルには、category_name です。。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード ```book.new.html.erb <%= form_tag("/books/create") do %> <div class="form"> タイトル <input type="text" name="title" class="form-control" class="input-medium search-query" form-control-lg required autofocus> <br> タイトルフリガナ <input type="text" name="title_ruby" class="form-control" class="input-medium search-query" form-control-lg required autofocus> <br> 著者 <input type="text" name="author" class="form-control" class="input-medium search-query" form-control-lg required autofocus> <br> 著者フリガナ <input type="text" name="author_ruby" class="form-control" class="input-medium search-query" form-control-lg required autofocus> <br> カテゴリ <% @book = Book.create%> <%= form_for @book,url:books_create_path do |f| %> <%= f.collection_select :category_id, Category.all, :id, :category_name %> <% end %> <br> 概要 <input type="text" name="overview" class="form-control" class="input-medium search-query" form-control-lg required autofocus> <br> 在庫数 <input type="text" name="book_stock" class="form-control" class="input-medium search-query" form-control-lg required autofocus> <br> <input type="submit" class="btn btn-lg btn-primary" value="新規登録" > </div> <% end %> book.controller(一部省略) def new @book = Book.find_by(id: params[:id]) @books = Book.all @categories = Category.all @category = Category.find_by(id: params[:id]) end def create#isbn抜いた @book = Book.create(title: params[:title], title_ruby: params[:title_ruby], author: params[:author], author_ruby: params[:author_ruby], book_stock: params[:book_stock], overview: params[:overview], category_id: params[:category_id]) redirect_to("/books/index") end ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/13 07:19 編集