2010-05-31 89 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 %>