0

Rails ルート ファイルに問題があります。ルートファイルに次の一致があります。

  match '/games/:game_id/increment_cool' => 'games/:game_id#increment_cool', :as => 'games_incrementcool'

次に、ゲームビューからこのルートを次のように使用しようとします。

<%= link_to 'Cool!', games_incrementcool_path(@game) %>

しかし、ルーティング エラーが表示されますuninitialized constant Games

rake routes はこれを示しています:

(in /home/sumdeos/RIT48/oneCoolGameADay)
                          profile_index GET    /profile/index(.:format)
                       new_user_session GET    /users/sign_in(.:format)
                           user_session POST   /users/sign_in(.:format)
                   destroy_user_session DELETE /users/sign_out(.:format)
                 user_omniauth_callback        /users/auth/:action/callback(.r)
                          user_password POST   /users/password(.:format)
                      new_user_password GET    /users/password/new(.:format)
                     edit_user_password GET    /users/password/edit(.:format)
                                        PUT    /users/password(.:format)
               cancel_user_registration GET    /users/cancel(.:format)
                      user_registration POST   /users(.:format)
                  new_user_registration GET    /users/sign_up(.:format)
                 edit_user_registration GET    /users/edit(.:format)
                                        PUT    /users(.:format)
                                        DELETE /users(.:format)
submitLeaderboardStatistic_game_leaderboard POST   /games/:game_id/leaderboards/:
                      game_leaderboards GET    /games/:game_id/leaderboards(.
                                        POST   /games/:game_id/leaderboards(.
                   new_game_leaderboard GET    /games/:game_id/leaderboards/n
                  edit_game_leaderboard GET    /games/:game_id/leaderboards/:
                       game_leaderboard GET    /games/:game_id/leaderboards/:
                                        PUT    /games/:game_id/leaderboards/:
                                        DELETE /games/:game_id/leaderboards/:
                                  games GET    /games(.:format)
                                        POST   /games(.:format)
                               new_game GET    /games/new(.:format)
                              edit_game GET    /games/:id/edit(.:format)
                                   game GET    /games/:id(.:format)
                                        PUT    /games/:id(.:format)
                                        DELETE /games/:id(.:format)
                    games_incrementcool        /game/:game_id/increment_cool(
                             home_index GET    /home/index(.:format)
                                   root        /

これを機能させるためにさまざまな方法を試しましたが、どれも機能しませんでした。

ビューでゲーム コントローラーの increment_cool メソッドを呼び出すにはどうすればよいですか? 前もって感謝します!

4

1 に答える 1

0

これは、一致が機能する方法です。match '/posts' => 'posts#index'

最初の文字列はルートで、2 番目の文字列は # で区切られたコントローラーとアクションの組み合わせです。

'games#increment_cool'コントローラのincrement_coolアクションを表します。games

match '/games/:game_id/increment_cool' => 'games#increment_cool', :as => 'games_incrementcool'

:asただし、単一のリソースで動作しているため、セマンティック上の理由からオプションで単一の「ゲーム」を使用する必要があります。game_increment_coolまたはのようなものかもしれませんincrement_cool_game

于 2012-03-25T03:10:17.237 に答える