0

Railsアプリにゲームモデルがあります。ルートファイルで、そのリソースルートを作成しました

resource :games,  defaults: {format: :json}

ただし、Backboneを使用してurl:'games'にajaxリクエストを送信すると、404エラーが発生しました。実行rake routesすると、「ゲーム」がPOSTリクエストであり、ゲームコントローラーの作成アクションにリンクされていることがわかります。これは明らかに想定されているものではありません(以下の質問リソースのレーキルートを参照してください)。

以下にゲームモデルコードも含めました。

誰かが私が間違ったことを説明できますか?

レーキルートGame.rb

 games POST   /games(.:format)                 games#create {:format=>:json}
 new_games GET    /games/new(.:format)         games#new {:format=>:json}
 edit_games GET    /games/edit(.:format)       games#edit {:format=>:json}
 GET    /games(.:format)                       games#show {:format=>:json}
 PUT    /games(.:format)                       games#update {:format=>:json}
 DELETE /games(.:format)                       games#destroy {:format=>:json}

比較すると、質問モデルのルートは次のとおりです

questions GET    /questions(.:format)                  questions#index
          POST   /questions(.:format)                  questions#create
new_question GET    /questions/new(.:format)           questions#new
edit_question GET    /questions/:id/edit(.:format)     questions#edit
question GET    /questions/:id(.:format)               questions#show
         PUT    /questions/:id(.:format)               questions#update
         DELETE /questions/:id(.:format)               questions#destroy

ゲームモデル

class Game < ActiveRecord::Base
  attr_accessible :creator_id, :name

  has_many :results 
  has_many :users, :through => :results

  has_reputation :votes, source: :user, aggregated_by: :sum #for Active_record_reputation gem


  class << self    
    def win?(chars_left, incorrect_guesses)
      chars_left == 0 and incorrect_guesses < 6
    end



    def correct_response?(correctanswer, guess)
        correctanswer == guess
    end 


    def correct_guess?(char_clicked, final_word)

      puts char_clicked
      puts final_word =~ /#{char_clicked}/i
      if final_word =~ /#{char_clicked}/i 
        true
      else
        false
      end 

    end



  end
end
4

1 に答える 1

2

単一のリソースであるため、を使用してもルートresource :gamesは得られません。にindex変更する必要があります。こちらをご覧くださいresources :games

于 2013-03-19T23:46:04.913 に答える