我有一个“购物车”模型,用户购物车ID存储在他们的会话中。
我的路线看起来像这样
map.resources :carts
map.cart "cart", :controller => "carts", :action => "show"
在我的节目视图中,我显示了购物车的内容,一切都很好。 然后我决定我希望用户能够从节目视图更新项目数量,所以我将其添加到视图中..
<% form_for @cart do |cart_form| %>
<% end %>
现在我收到以下错误
undefined method `to_sym' for nil:NilClass
在
<% form_for @cart do |cart_form| %>
有趣的是,如果我删除
map.cart "cart", :controller => "carts", :action => "show"
从我的路线,并在网址中指定购物车ID,它可以工作,但我不想在网址中传递购物车ID。
请知道如何解决这个问题?
[更新]
rake路线如下所示:
carts GET /carts(.:format) {:controller=>"carts", :action=>"index"}
POST /carts(.:format) {:controller=>"carts", :action=>"create"}
new_cart GET /carts/new(.:format) {:controller=>"carts", :action=>"new"}
edit_cart GET /carts/:id/edit(.:format) {:controller=>"carts", :action=>"edit"}
GET /carts/:id(.:format) {:controller=>"carts", :action=>"show"}
PUT /carts/:id(.:format) {:controller=>"carts", :action=>"update"}
DELETE /carts/:id(.:format) {:controller=>"carts", :action=>"destroy"}
cart /cart {:controller=>"carts", :action=>"show"}
答案 0 :(得分:0)
如果您不需要路线中的ID,则可以使用:
map.resource :cart, :controller => :carts