我是初学者的html和ruby on rails。这听起来是一个非常基本的问题,但经过多次尝试后,我无法理解如何将值从输入类型传递给控制器。
这是我的代码 -
<div style = "border:1px solid black; padding:1em;">
<%= link_to product.name, product_path(product.id) %>
<br><br>
Price : <%= product.price %>
Quantity : <input type="text" name='quantity' value = '1' min ='1'/>
<br><br>
<% if session[:cart_id] && @cart_item_ids.include?(product.id) %>
<button><%= link_to 'Remove', remove_item_path(:product_id => product.id)
%></button>
<% elsif session[:cart_id] %>
<button><%= link_to 'Add To Cart', add_to_cart_path(:product_id => product.id, :price => product.price, :quantity => 'quantity')
%></button>
<% end%>
<br>
</div>
这是我的控制器
class CartsController < ApplicationController
def add_to_cart
byebug
cart_item = CartItem.new
cart_item.product_id = params[:product_id]
cart_item.quantity = 1
cart_item.price = params[:price]
cart_item.cart_id = session[:cart_id]
cart_item.save
product = Product.find(params[:product_id])
category = Category.find(product.category_id)
redirect_to category_path(:id => product.category_id)
end
def remove_item
CartItem.where(:cart_id => session[:cart_id]).where(:product_id => params[:product_id]).first.destroy
product = Product.find(params[:product_id])
redirect_to category_path(:id => product.category_id)
end
def view_cart
cart = Cart.where(:consumer_id => session[:consumer_id]).first
@cart_items = CartItem.where(:cart_id => cart.id)
render 'show'
end
end
提前致谢。
答案 0 :(得分:1)
您需要使用form
发布数据,或者需要使用一些异步Javascript请求来发布数据。