2013-03-19 99 views
0

我的Rails应用有一个游戏模型。在路由文件,我创建了一个资源路线是资源的索引路由是POST

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

然而,当我做了一个Ajax请求的URL:“游戏”使用骨干,我得到了一个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 

回答

2

使用resource :games不会给你的路线一个index路由,因为它是一个单一资源,您需要将其更改为resources :gameshave a look here

+0

+1,我是盲目地看着代码,想知道为什么没有索引行动:) – Zippie 2013-03-19 23:50:16

+0

@ Zippie它发生在每个单一的Rails开发自框架的黎明以来。 – tagCincy 2013-03-20 00:01:45