2011-07-17 10 views
1

cancanでフォーム要素を認証​​する方法はありますか?下のコードには代理店用の選択ボックスがあり、現在のユーザーがアクセスできる代理店のみを記載していますが、他の代理店にブランドを追加できるように代理店のフォームとIDを編集できるユーザーです。どのように私は値をチェックすることができない場合cancanで、これらのタイプのものを制限する方法はありますか?cancanフォームの値を検証する

can :read, Agency, :id => user.agencies_as_admin 
can :create, Brand 

アップデートで承認をチェックして、コントローラのアクションを作成する必要がありますので、あなたは、意図的にアプリケーションに不正なデータを送信することからユーザーを防ぐことはできませんフォーム

<%= form_for(@brand) do |f| %> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 

    <%= f.label :agency_id %><br /> 
    <%= f.collection_select :agency_id, Agency.accessible_by(current_ability), :id, :name %> 

    <%= f.submit %> 
<% end %> 

答えて

0

実際にブランドリソースを作成する前に、何かのように

agency = Agency.find(params[:brand][:agency_id]) 
authorize! :read, agency