代码之家  ›  专栏  ›  技术社区  ›  dangerousdave

使用会话时出现符号错误

  •  0
  • dangerousdave  · 技术社区  · 14 年前

    我有一个“购物车”模型,用户的购物车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"
    

    从我的路线,并在URL中指定一个购物车ID,它可以工作,但我不想在URL中传递购物车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"}
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   jordinl    14 年前

    如果在路由中不需要ID,可以使用:

    map.resource :cart, :controller => :carts