2010-05-31 86 views
1

我使用Acl9来管理角色,如果用户具有角色,我想隐藏复选框usertype:customer,如果角色是:manager,则显示它。我希望只有:管理员可以编辑所有字段和一些:客户。根据Acl9角色显示或隐藏字段 - Ruby on Rails

谢谢你的帮助!

<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 %> 

回答

1

按照Acl9 documentation,你应该能够做这样的事情:

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

非常感谢! – 2010-05-31 16:53:35

2

你也可以做这样认为:

..in您application_helper.rb

module ApplicationHelper 
    include Acl9Helpers 
end 

..并在您的意见,类似的东西

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