2012-03-25 6 views
0

Ich habe ein Problem mit meiner Rails Routes-Datei. Ich habe folgendes Spiel in meiner Routen-Datei:Rails Routing Issue - Uninitialized Constant Spiele

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

ich dann versuchen, diesen Weg zu verwenden, um von meinen Spielen sehen, wie so:

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

aber ich erhalte den Routing-Fehler uninitialized constant Games.

Rake Routen zeigt dies:

(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  /

Ich habe eine Reihe von verschiedenen Möglichkeiten versucht, diese Arbeit zu machen, aber keiner von ihnen gearbeitet haben.

Wie kann ich die increment_cool-Methode in meinem Spiele-Controller aufrufen? Danke im Voraus!

+0

Sollte das nicht game_incrementcool_path sein? Der Fehler deutet darauf hin, dass die RoR-Magie nach einem Spielmodell anstelle eines Spielmodells sucht. –

Antwort

0

Dies ist die Art und Weise Spiel funktioniert: match '/posts' => 'posts#index'

Der erste String ist die Route und die zweite Saite ist eine Controller/Aktion Kombination von # getrennt.

'games#increment_cool' repräsentiert die increment_cool Aktion des games Controllers.

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

Obwohl Sie wahrscheinlich den Singular ‚Spiel‘ in Ihrer :as Option für semantischen Gründen verwenden sollte, weil es auf einer einzigartigen Ressource arbeiten wird. Vielleicht etwas wie game_increment_cool oder .