我有一个名为state
的嵌套资源,它属于名为game
的资源:
resources :games do
resources :states
end
State有一个turn
列,游戏是唯一的,即有许多状态具有相同的转弯(例如1),但对于游戏235,只有一个转弯= 1的州。
嵌套资源会生成/games/:game_id/states/:id
形式的网址,而我需要/games/:game_id/states/:turn
。
我将如何做到这一点?
答案 0 :(得分:2)
在State
模型中,添加此方法:
def to_param
turn
end
现在,在您的网址路径中,您所要做的就是传递游戏和状态对象,如下所示:
game_state_path(@game, @state)
由于您定义了to_param,因此将使用状态的属性turn
代替其id
。
现在,您所要做的就是更改控制器中的finder方法:
find_by_state(params[:id])
有关详细信息,请查看Friendly URLs上的有用指南。