2012-05-01 9 views
2

商品とカテゴリの間にHABTMの関係があります。これらのカテゴリーはユーザーに属します。Rails 3:レコードがユーザーに属していることを確認する

私の製品フォームでは、現在のユーザーのチェックボックスのみを表示しています。しかし、私はモデルでもこれを検証したいので、ユーザーはPOST変数を偽って無効なカテゴリに割り当てることはできません。

どうすればこのような検証を行うことができますか?

例:category_id 5を指定すると、このカテゴリがcurrent_user.id(deviseが提供)に属しているかどうかを確認する必要があります。

ありがとうございました。

答えて

1

モデルにattr_accessor: creator_idを追加できます。 (creator_idはデータベースにありません)

current_user.idPostcreator_idに送信してください。

次に、モデルコールバックを使用します。例えば、after_validation

after_validation do 
    if User.find(creator_id).categories.pluck(:id).include?(category_id) 
    true 
    else 
    errors.add :category, "is invalid for user" 
    end 
end 
関連する問題