0

クライアント モデルがあり、その中に入れ子になっているプログラム モデルがあります。元:

localhost:3000/clients/2
localhost:3000/clients/2/programs/5

私の ApplicationController クラスでは、before_filter の Client モデル オブジェクトを読み込めるようにしたいと考えています。私はこのようにしてみました:

@user_client = Client.find(params[:client_id])

これは、ネストされたリソース (localhost:3000/clients/2/programs/5) では機能しますが、クライアント レルム (localhost:3000/clients/2) では機能しません。私がこのようにすると:

@user_client = Client.find(params[:id])

これは逆です。クライアント領域 (localhost:3000/clients/2) では機能しますが、ネストされたリソース (localhost:3000/clients/2/programs/5) では機能しません。

両方に有効な方法はありますか?

4

1 に答える 1

2

次のようなことができますか?

@user_client = Client.find(params[:client_id] || params[:id])

そのため、一方が nil の場合、もう一方が ID として入力されます。

この順序でそれらを持っていることは、:client_id.

ただし、危険な点は、リンクの末尾にある id が呼び出される:idため、レコードを識別しようとすると混乱が生じる可能性があることです。ただ警戒してください。

于 2012-10-11T23:23:32.750 に答える