0

私のRailsアプリケーションには多くのゲームがあり、各ゲームには独自のリーダーボードのセットがあります。その場合、リーダーボードをゲーム内にネストすることは理にかなっているため、ゲームを通じてのみリーダーボードにアクセスできます。私はroutes.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」を持っています、そしてそれはうまくいきます...私は何が間違っているのですか?

4

1 に答える 1

2

あなたが欲しい:

<%= link_to 'Edit', edit_game_leaderboard_path(@game, leaderboard) %>
于 2011-07-03T02:40:57.350 に答える