1

我有一个名为的嵌套资源state,它属于一个名为game

resources :games do
  resources :states
end

State 有一个列,它在 gameturn中是唯一的,即有许多 state 具有相同的 turn(例如 1),但是对于 game 235,只有一个 state 的 turn = 1。

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

我该怎么做呢?

4

1 回答 1

2

在您的State模型中,添加此方法:

def to_param
  turn
end

现在,在您的 url 路径中,您所要做的就是传递游戏和状态对象,如下所示:

game_state_path(@game, @state)

由于您定义了 to_param,因此turn将使用 state 的属性而不是它的id.

现在,您所要做的就是更改控制器中的 finder 方法:

find_by_state(params[:id])

有关更多信息,请查看有关友好 URL 的有用指南。

于 2013-06-22T21:18:32.207 回答