根据Acl9角色显示或隐藏字段 - Ruby on Rails

时间:2010-05-31 13:27:17

标签: ruby-on-rails acl9

我正在使用Acl9来管理角色,如果用户具有角色,我想要隐藏复选框usertype:customer,如果角色是:manager,则显示它。我想要的只是:经理可以编辑所有字段,还有一些用于:客户。

感谢您的帮助!

<h1>Editing user</h1>

<% form_for(@user) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :usertype %><br />
    <%= f.check_box :usertype %>
  </p>
  <p>
    <%= f.label :surname %><br />
    <%= f.text_field :surname %>
  </p>
  <p>
    <%= f.label :firstname %><br />
    <%= f.text_field :firstname %>
  </p>
  <p>
    <%= f.label :phone %><br />
    <%= f.text_field :phone %>
  </p>
  <p>
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </p>
  <p>
    <%= f.label :registrationdate %><br />
    <%= f.datetime_select :registrationdate %>
  </p>
  <p>
    <%= f.label :login %><br />
    <%= f.text_field :login %>
  </p>
  <p>
    <%= f.label :password %><br />
    <%= f.text_field :password %>
  </p>
  <p>
    <%= f.submit 'Update' %>
  </p>
<% end %>

<%= link_to 'Show', @user %>
<%= link_to 'Back', users_path %>

2 个答案:

答案 0 :(得分:2)

您也可以这样想:

..在你的application_helper.rb

module ApplicationHelper
  include Acl9Helpers
end

..在你的观点中,有类似的东西

<% show_to(:admin) do %>
  The content to show
<% end %>

答案 1 :(得分:1)

根据Acl9 documentation,您应该能够做到这样的事情:

<% if @user.has_role?(:manager, nil) %> 
  <p>
    <%= f.label :usertype %><br />
    <%= f.check_box :usertype %>
  </p>
<% end %>
相关问题