ラーメンの口コミを登録するサイトを作っています。
まず管理者側から店とメニューを登録するために
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にできるのかがわかりません。正しい記述方法があれば教えていた抱けるとありがたいです。
あなたの回答
tips
プレビュー