В моем приложении на Rails есть много игр, и у каждой игры есть свой набор лидеров.Тогда имеет смысл вкладывать таблицы лидеров в игру, чтобы вы могли попасть в таблицу лидеров только через игру.Я настроил свой файл rout.rb следующим образом (важная часть):
resources :games do
resources :leaderboards
end
Итак, я обновил свой контроллер, чтобы он получал соответствующую игру из переданного game_id, и извлекал информацию из списка лидеров из этого списка.,Тем не менее, мои проблемы исходят из моей точки зрения.В этом разделе (автоматически сгенерированный вид из скаффолда):
<% @leaderboards.each do |leaderboard| %>
<tr>
<td><%= leaderboard.name %></td>
<td><%= leaderboard.scoreColumnName %></td>
<td><%= leaderboard.game_id %></td>
<td><%= link_to 'Show', [@game, leaderboard] %></td>
<td><%= link_to 'Edit', edit_game_leaderboard_path(leaderboard) %></td>
<td><%= link_to 'Destroy', [@game, leaderboard], :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
Код разбит, говоря:
No route matches {:action=>"edit", :controller=>"leaderboards", :game_id=>#<Leaderboard id: 1, name: "Test High Score Leaderboard", scoreColumnName: "Score", game_id: 1, created_at: "2011-07-03 01:32:33", updated_at: "2011-07-03 01:32:33">}
Эта строка, оказывается, является ошибкой: (строка 19 в моемкод)
<td><%= link_to 'Edit', edit_game_leaderboard_path(leaderboard) %></td>
Удаление этой строки, и представление отображается нормально.Итак, часть URL не работает, но как мне это исправить?Странно то, что у меня есть именно этот «edit_game_leaderboard_path» в представлении «Показать», и он отлично работает ... что я делаю не так?