2011-06-24 5 views
0

レール内のリソースの豊富なルート。:idフィールドが手抜きのルートで渡されるキーをどのように変更しますか?

resource :users 

のuser_idは介してコントローラに渡されます。しかし、あなたが巣元内の別のリソース際にidパラメータ

@user_id = params[:id`] 

resource :users do 
    resource :questions 
end 

ユーザーIDが、その後渡されます:user_idパラメータで

@user_id = params[:user_id] 
@question_id = params[:id] 

:idキーの命名を強制する方法はありますか?一貫していますか?

答えて

0

名前を一致させる1つの方法は、@userの属性をidではなくuser_idに変更し、これを主キーとして使用することです。データベースをロールバックして、ユーザークラスの移行を変更し、そこの属性を変更することで、これを行うことができます。

これを一貫性を持たせるもう1つの方法は、ユーザークラス内にcurrent_userを返すメソッドを持たせることです。次に、この構文を使用してユーザーをいつでも呼び出すことができます。

+0

ありがとうございました。私は効果的に後者のメソッドを使いましたが、キー自体を指定する効果的な方法が実際にあるかどうかを知りたいと思っていました。 –

+0

後者のメソッドを使用する場合は、常にcurrent_user.idを呼び出すことができます。これは、ログインしているUserオブジェクトのIDを返します。 –

関連する問題