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