1

という名前のネストされたリソースがstateあり、これは という名前のリソースに属していgameます:

resources :games do
  resources :states
end

状態には、ゲームturnごとに固有の列があります。つまり、同じターン (たとえば 1) の状態は多数ありますが、ゲーム 235 では、ターン = 1 の状態は 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 を定義したので、 state の属性turnが代わりに使用されますid

あとは、コントローラーのファインダー メソッドを変更するだけです。

find_by_state(params[:id])

詳細については、Friendly URLsに関するこの便利なガイドを確認してください。

于 2013-06-22T21:18:32.207 に答える