私は単純なネストされたフォームを持っており、隠しフィールドでネストされた属性を設定しています:
<%= role_form.hidden_field :company_id, :value => session[:company_id] %>
ここでの考え方は、現在のセッション変数によるセットCompany
を介して、このネストされたモデル (ロール ベースのパーミッション システム) を別のモデルに関連付けているということです。company_id
私の問題は、ユーザーがリクエストを送信し、任意のロールを作成/更新して、company_id
別の会社のアカウントにアクセスできることです。
ネストされたモデル属性を強制的にこのセッション値または検証にすることはできますか?
私は作成を考えていました:
@user = User.new(params[:user])
@user.roles.first.company_id = session[:company_id]
更新のために、私は同じことをすることができました。
私が試した検証に関しては:
accepts_nested_attributes_for :roles, :limit => 1, :allow_destroy => true , :reject_if => proc { |attributes| attributes['company_id'] != session[:company_id] }
モデルのセッション情報にアクセスできないようです。
これらの方法のいずれかでこれを行うことができるかどうか、誰にも考えがありますか?