🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

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

Q&A

解決済

1回答

405閲覧

ActionController::UrlGenerationErrorが解決できません

zoff77

総合スコア19

Ruby on Rails 5

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

0グッド

0クリップ

投稿2021/02/10 04:53

編集2021/02/10 13:08

下記のようなエラーが出ています。
urlを確認したところ、receptionsのidを渡すことはわかるのですが、どうしてもmissing required keys: [:id]となってしまいます。お手数ではございますが、解決方法をご教授頂けないでしょうか。

イメージ説明

erb

1 2*show.html.erb* 3 4<%= month_calendar do |date| %> 5 <% if Date.current < date %> 6 <%= link_to date.day, users_reception_path(@reception), remote: true %> 7 <% else %> 8 <%= link_to date.day, "#", class: "disabled" %> 9 <% end %> 10 <% end %> 11</div> 12 13<div id="show" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true"></div>

rb

1 2*users/receptions_controller(該当箇所)3 4def show 5 @reception = Reception.find(params[:id]) 6 end 7 8 9 private 10 11 def reception_params 12 params.require(:reception).permit(:date_of_use, :start_time, :end_time, :start_transfer, :end_transfer, :start_place, :end_place, :event, :remarks).merge(user_id: current_user.id) 13 end

*rails_info*
イメージ説明

rb

1 2*schema.rb* 3 4create_table "receptions", force: :cascade do |t| 5 t.integer "admin_id" 6 t.integer "user_id" 7 t.datetime "date_of_use" 8 t.datetime "start_time" 9 t.datetime "end_time" 10 t.boolean "start_transfer" 11 t.boolean "end_transfer" 12 t.string "start_place" 13 t.string "end_place" 14 t.boolean "event" 15 t.string "remarks" 16 t.datetime "created_at", null: false 17 t.datetime "updated_at", null: false 18 t.index ["admin_id"], name: "index_receptions_on_admin_id" 19 t.index ["user_id"], name: "index_receptions_on_user_id" 20 end 21 22 create_table "users", force: :cascade do |t| 23 t.string "name" 24 t.string "email" 25 t.integer "contact" 26 t.datetime "created_at", null: false 27 t.datetime "updated_at", null: false 28 t.string "encrypted_password", default: "", null: false 29 t.string "reset_password_token" 30 t.datetime "reset_password_sent_at" 31 t.datetime "remember_created_at" 32 t.boolean "admin", default: false 33 t.index ["email"], name: "index_users_on_email", unique: true 34 t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true 35 end 36 37end 38

*ファイルツリー*

イメージ説明

*pry(main)> Reception.allの結果*

イメージ説明

■ 遷移先のページは_show.html.erbとし、モーダル表示となります。

宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

@reception = Reception.find(params[:id])
の params[:id] が怪しいです。
本当に 実在するReception のid になっていますか?

投稿2021/02/10 11:18

winterboum

総合スコア23567

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

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

zoff77

2021/02/10 13:06

いつもご回答頂き、ありがとうございます。 念のため、コンソールにてpry(main)> Reception.allを叩き、確認しました。 2つではありますが、idは存在しました。(質問文に追記させていただきます) showに遷移させる方法が間違っているのでしょうか。。。
winterboum

2021/02/10 13:21

渡ってきた params[:id]の値は?
zoff77

2021/02/11 05:55

できました!! カレンダーの日付でしたので、dateを指定したら成功しました。 お手数おかけしました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問