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

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

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

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

0回答

1355閲覧

rails Couldn't find ID with ID...がでてしまう

mr.james

総合スコア11

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

1クリップ

投稿2017/06/04 04:04

編集2022/01/12 10:55

ユーザー登録と同時にhas_manyのモデルを同時に作成できるシステムを作成しています。

そのhas_manyのモデル(NewPuppyRequest)はPrefectureとの間に中間テーブルを持っており、formで複数都道府県を選択し、中間テーブルにそれを格納する際に以下のようなエラーが出ます。

Couldn't find Prefecture with ID=15 for NewPuppyRequest with ID=

こちらの解決方法をご教示願います。
よろしくお願いいたします。

**controller** def new @user = User.new end def create @user = User.new(user_params) @new_puppy_request = @user.new_puppy_requests.build(new_puppy_request_params) if params[:confirm].present? if @user.valid? render :confirm else if params[:user][:new_puppy_requests_attributes].present? render "new_puppy_requests/new" else render :new end end return end if params[:back].present? render :new and return end if @user.save sign_in(:user, @user) render :complete else render :new end end private def user_params params.require(:user). permit(*%i(name01 name02 kana01 kana02 email email_confirmation password password_confirmation post_code pref city apart tel)) end def new_puppy_request_params params.require(:user).require(:new_puppy_requests_attributes).require("0").permit! end
**NewPuppyRequest model** has_many :new_puppy_request_pick_up_possible_prefecture_relations, dependent: :destroy has_many :pick_up_prefectures, through: :new_puppy_request_pick_up_possible_prefecture_relations, source: "prefecture" accepts_nested_attributes_for :pick_up_prefectures
**Prefecture model** has_many :new_puppy_request_pick_up_possible_prefecture_relations has_many :new_puppy_requests, through: :new_puppy_request_pick_up_possible_prefecture_relations accepts_nested_attributes_for :new_puppy_request_pick_up_possible_prefecture_relations
**new.slim** = form_for(@user, url: user_registration_path) do |f| = f.fields_for :new_puppy_requests, f.object.new_puppy_requests.build do |ff| - Region.includes(:prefectures).each do |region| = ff.collection_check_boxes :pick_up_prefecture_ids, region.prefectures, :id, :pref do |b| span.mr5 = b.label { b.check_box(data: { prefecture_id: b.object.id, prefecture_name: b.object.pref, parent_region_id: region.id }) + b.label }
**confirm.slim** = form_for(resource, as: resource_name, url: { action: "complete" }, html: { id: "confirm_form" }) do |f| = f.fields_for :new_puppy_requests, @new_puppy_request do |ff| = ff.fields_for :pick_up_prefectures do |fff| = fff.hidden_field :id

わかりにくい点や、情報の不足等ございましたらご指摘いただけますと幸いです。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問