Ошибка маршрутизации Rails 3 с вложенными ресурсами - PullRequest
0 голосов
/ 03 июля 2011

В моем приложении на 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» в представлении «Показать», и он отлично работает ... что я делаю не так?

1 Ответ

2 голосов
/ 03 июля 2011

Вы хотите:

<%= link_to 'Edit', edit_game_leaderboard_path(@game, leaderboard) %>
...