У меня есть несколько маршрутов, которые хорошо работали в моем приложении Rails 3.0.7 до обновления до 3.1.
# routes.rb
resources :chapters do
resources :cards
end
resources :cards
С некоторым кодом контроллера, подобным этому:
def show
@book = Book.find(params[:book_id])
@chapter = Chapter.find(params[:id])
@card = @chapter.cards.new # for "new card" form thats displayed on this same page
respond_with(@chapter)
end
С довольно типичным представлением, сгенерированным скаффолдом со ссылками:
<% @chapter.cards.each do |card| %>
<%= link_to 'Edit', edit_card_path(card) %>
<% end %>
Теперь, если я попытаюсьвытащите его в браузере, я получаю такие ошибки:
No route matches {:action=>"edit", :controller=>"cards", :id=>#<Card id: nil, side1: nil, side2: nil, chapter_id: 6, created_at: nil, updated_at: nil>}
Показывается идентификатор nil
, который не соответствует действительности, потому что я могу отображать другие значения в этой записи.
Почему это происходит?Как я могу это исправить?