我有餐厅,购物车以及用户模型。我想在进入餐厅时被重定向到购物车表格。此表格将询问我一个表号,然后为当前用户创建一个购物车。但是,在提交表单时,我遇到了传递参数的问题
Couldn't find Restaurant with 'id'=
我想他们不在白名单中,但我找不到如何允许他们......我会感谢任何建议!
传递的参数:
{"utf8"=>"✓",
"authenticity_token"=>"*****",
"cart"=>{"restaurant_id"=>"1",
"table_id"=>"4"},
"commit"=>"Create Cart",
"user_id"=>"1"}
我正在传递带有隐藏字段的restaurant_id和带有输入的表格
<%= f.hidden_field :restaurant_id, value: params[:restaurant_id] %>
<%= f.input :table_id %>
在购物车控制器中:
def create
@restaurant = Restaurant.find(params[:restaurant_id])
@table = @restaurant.tables.find(params[:table_id])
@cart = current_user.carts.new(cart_params)
...
end
....
def cart_params
params.require(:cart).permit(:restaurant_id, :table_id)
end
答案 0 :(得分:5)
无法找到带有&#39; =&#39; =
的餐厅
当您查看restaurant_id
时,cart
内有params[:cart][:restaurant_id]
,因此您需要像params[:table_id]
一样访问它。此外,您还需要将params[:cart][:table_id]
更改为def create
@restaurant = Restaurant.find(params[:cart][:restaurant_id])
@table = @restaurant.tables.find(params[:cart][:table_id])
@cart = current_user.carts.new(cart_params)
...
end
以避免其他错误。
EvtImage image (datatype)