質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

442閲覧

(Ruby on Rails)外部キーの中にあるデータを使って、保存する。(selectを使うのでしょうか。)

aza

総合スコア14

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/06/07 15:07

編集2018/06/07 15:08

前提・実現したいこと

外部キーを用いて、データを登録しようとしていますが、なかなかうまくできません。
最終的に、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/ツールのバージョンなど) ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

内容の回答ではないですが、コードを記載する部分と、文章を記載する部分が逆です。

この部分にコードを書くと、綺麗にレイアウトされますよ。 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

悩み事が解読しづらくて、回答する人が減ってしまうのがもったいないので。

投稿2018/06/08 12:18

dobby618

総合スコア302

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aza

2018/06/13 07:19 編集

ご指摘ありがとうございます。先ほど自己解決しました。 今後気を付けたいと思います。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問