我有一個嵌套的資源稱爲state
,屬於資源名爲game
:比其他列嵌套的資源:ID
resources :games do
resources :states
end
國家有turn
列,它通過遊戲是唯一,即有是很多狀態都有相同的回合(例如1),但是對於遊戲235,只有一個狀態的回合= 1。
嵌套資源生成/games/:game_id/states/:id
表單的URL,而我想要/games/:game_id/states/:turn
。
我該怎麼做呢?
我有一個嵌套的資源稱爲state
,屬於資源名爲game
:比其他列嵌套的資源:ID
resources :games do
resources :states
end
國家有turn
列,它通過遊戲是唯一,即有是很多狀態都有相同的回合(例如1),但是對於遊戲235,只有一個狀態的回合= 1。
嵌套資源生成/games/:game_id/states/:id
表單的URL,而我想要/games/:game_id/states/:turn
。
我該怎麼做呢?
在你State
模型中,添加這個方法:
def to_param
turn
end
現在,在你的URL路徑,所有你需要做的就是通過比賽和狀態的對象,像這樣:
game_state_path(@game, @state)
由於您定義了to_param,因此將使用州的屬性turn
而不是其id
。
現在,所有你需要做的是改變finder方法在你的控制器:
find_by_state(params[:id])
欲瞭解更多信息,請查看本Friendly URLs有用的指導。
祝福你,親切的先生。我已經忘記了這一切。 – FrontierPsycho
實際上,嵌套這些資源會生成'/ games /:game_id/states /:id'形式的URL。這些不足以滿足您的需求嗎? – Ashitaka
我編輯了這個問題來反映這一點。但是,請觀察我想要的URL:最後有_turn_。我想要選擇狀態,而不是個人ID。所以不,這些還不足以滿足我的需求! – FrontierPsycho