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

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

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

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

Q&A

0回答

357閲覧

form_forでネストされたものを保存しようとした時のURLの指定がうまくいかない。

Yn_26247

総合スコア16

Ruby on Rails 5

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

0グッド

0クリップ

投稿2020/09/25 13:22

編集2020/09/25 15:04

ラーメンの口コミを登録するサイトを作っています。

まず管理者側から店とメニューを登録するために

routes.rb : namespace :admin do resources :shops do resources :raamens do resources :reviews end end :

とし

admin/raamens/new.html.erb : <div class="container"> <div class="row"> <div class="col-xs-10 col-xs-offset-1"> <h2>ラーメンの登録</h2> <%= render "form", shop: @shop, raamen: Raamen.new, submit: '登録' %> </div> </div> </div>
admin/raamens/_form.html.erb : <%= form_for ( [:admin, shop, raamen] ) do |f| %> <div class="flex"> <div> <%= f.label :image, "画像" %> <div class="image_field"> <%= attachment_image_tag raamen, :raamen_image, format: "jpeg", id: "img_prev", fallback: "no_image.jpg", class: "raamen_image" %> <span class="btn btn-file btn-info"><%= f.attachment_field :raamen_image %>画像選択</span> <p>選択するとプレビューされます。<br>画像未選択のままだと、<br>「画像準備中」になります。</p> </div> </div> <table class="table"> <thead> <tr> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td><%= f.label :name, "商品名" %></td> <td><%= f.text_field :name %></td> </tr> <tr> <td><%= f.label :text, "商品説明" %></td> <td><%= f.text_area :text, rows: 3 %></td> </tr> <tr> <td><%= f.label :aji, "味" %></td> <td><%= f.text_area :aji, rows: 3 %></td> </tr> <tr> <td><%= f.label :dashi, "出汁" %></td> <td><%= f.text_area :dashi, rows: 3 %></td> </tr> <tr> <td><%= f.label :price, "価格" %></td> <td><%= f.number_field :price %> 円</td> </tr> <tr> <td><%= f.label :sales_status, "販売ステータス" %></td> <td class="select_field"> <%= f.radio_button :is_active, true %> <%= f.label :is_active, "販売中", class: "text-active" %> <%= f.radio_button :is_active, false %> <%= f.label :is_active, "販売停止中", class: "text-invalid" %> </td> </tr> </tbody> </table> <div class="flex align-center pl5"> <%= f.submit submit, class: "btn btn-primary" %> </div> </div> <% end %>
raamens_controller.rb : def new @shop = Shop.find(params[:shop_id]) end

としたところ
イメージ説明
このようなエラーが出てしまいました。
<%= form_for ( [:admin, shop, raamen] ) do |f| %>の記述が間違っていることはなんとなくわかるり

ルーティングを確認すると

admin_shop_raamens GET /admin/shops/:shop_id/raamens(.:format) admin/raamens#index  POST /admin/shops/:shop_id/raamens(.:format) admin/raamens#create new_admin_shop_raamen GET /admin/shops/:shop_id/raamens/new(.:format) admin/raamens#new

となっているため
[:admin, shop, raamen]だとadmin_shop_raamens_pathになってしまうのはなんとなくわかるのですが、どうしたらnew_admin_shop_raamenにできるのかがわかりません。正しい記述方法があれば教えていた抱けるとありがたいです。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問