2013-06-22 62 views
1

我有一個嵌套的資源稱爲state,屬於資源名爲game比其他列嵌套的資源:ID

resources :games do 
    resources :states 
end 

國家有turn列,它通過遊戲是唯一,即有是很多狀態都有相同的回合(例如1),但是對於遊戲235,只有一個狀態的回合= 1。

嵌套資源生成/games/:game_id/states/:id表單的URL,而我想要/games/:game_id/states/:turn

我該怎麼做呢?

+0

實際上,嵌套這些資源會生成'/ games /:game_id/states /:id'形式的URL。這些不足以滿足您的需求嗎? – Ashitaka

+0

我編輯了這個問題來反映這一點。但是,請觀察我想要的URL:最後有_turn_。我想要選擇狀態,而不是個人ID。所以不,這些還不足以滿足我的需求! – FrontierPsycho

回答

2

在你State模型中,添加這個方法:

def to_param 
    turn 
end 

現在,在你的URL路徑,所有你需要做的就是通過比賽和狀態的對象,像這樣:

game_state_path(@game, @state) 

由於您定義了to_param,因此將使用州的屬性turn而不是其id

現在,所有你需要做的是改變finder方法在你的控制器:

find_by_state(params[:id]) 

欲瞭解更多信息,請查看本Friendly URLs有用的指導。

+0

祝福你,親切的先生。我已經忘記了這一切。 – FrontierPsycho