現在ECサイトを作成しています。
商品ページを個別に作成し、そのViewの中に新しいフォームを作成してカート商品のレコードを新規登録したいのですが
Routing Error
の影響でうまくいきません(m_ m)
わかる方がいらっしゃいましたらご教授いただきますようよろしくお願いいたします(m _m)
###エラー内容
![]
###期待する動作
add_itemアクションが問題なく処理されて@cartitemのレコードを正常に新規登録できるようにしたい
###動作環境
OS:mac
Ruby:2.3.5
Ruby on Rails: 4.2.5
MySQL: 5.7.18
###参考サイト
Rails5でカート機能を作るためのロジックを作ってみた
※このサイトでは商品一覧ページからすぐにカートに入れる仕様になっています。
###試したこと
###該当のソースコード
ルーティング
ruby
1#config/routes.rb 2Rails.application.routes.draw do 3 resources :items do 4 member do 5 #↓↓↓↓ここに記述してもうまくいきませんでした。 6 # post 'carts/add_item', to: 'carts#add_item' 7 get 'preview' 8 end 9 end 10 post 'carts/add_item', to: 'carts#add_item' 11 resources :carts, only: [:show] 12 # get '/add_item', to: 'carts#add_item' 13 root to: 'top#index' 14end
Controller
ruby
1#app/controllers/items_controller.rb 2class ItemsController < ApplicationController 3. 4 def preview 5 @item = Item.find(params[:id]) 6 @cartitem = Cartitem.new 7 @caritem.item_id = @item.id 8 end 9. 10end 11 12#app/controllers/carts_controller.rb 13class CartsController < ApplicationController 14. 15 def add_item 16 @cartitem = Cartitem.new 17 @cartitem = Cartitem.create(cartitem_params) 18 redirect_to cart_path, success: "商品がカートに追加されました" 19 # binding.pry 20 end 21. 22 def cartitem_params 23 params.permit(:quantity, :item_id, :user_id) 24 end 25end
View
html
1<!-- app/views/items/preview.html.erb --> 2<h2>Items#preview</h2> 3. 4. 5 <%= form_tag(carts_add_item_path, method: :post) do %> 6 <%= hidden_field_tag :item_id, @item.id %> 7 <%= hidden_field_tag :user_id, current_user.id %> 8 <%= text_field_tag :quantity %> 9 <%= submit_tag 'カートに入れる' %> 10 <% end %> 11. 12.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/15 17:32