【问题标题】:cancan validate form valuescancan 验证表单值
【发布时间】:2011-07-18 04:53:50
【问题描述】:

有没有办法用 cancan 授权表单元素?下面的代码有一个代理选择框,它只列出当前用户可以访问的代理,但有人可以编辑表单并更改代理的 ID,这样他就可以将品牌添加到另一个代理。有没有办法在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 %>

【问题讨论】:

    标签: ruby-on-rails authorization cancan


    【解决方案1】:

    您将无法阻止用户故意向您的应用程序发送未经授权的数据,因此您必须在实际创建品牌资源之前检查更新中的授权并创建控制器的操作。类似的东西

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

    【讨论】:

      猜你喜欢
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多