Ошибка to_sym при использовании сессий - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть модель "корзины", в их сеансе хранится идентификатор корзины пользователя.

Мои маршруты выглядят так

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, это работает, но я не хочу передавать идентификаторы корзины в URL.

Есть идеи, как это исправить, пожалуйста?

[обновление]

маршруты рейка выглядят так:

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 Ответ

0 голосов
/ 10 сентября 2010

Если вам не нужен идентификатор в маршрутах, вы можете использовать:

map.resource :cart, :controller => :carts
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...