代码之家  ›  专栏  ›  技术社区  ›  Michaël BadZen

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

  •  1
  • Michaël BadZen  · 技术社区  · 15 年前

    我使用Acl9来管理角色,如果用户有角色:customer,我想隐藏复选框usertype,如果角色是: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 回复  |  直到 15 年前
        1
  •  1
  •   John Topley    15 年前

    根据 Acl9 documentation

    <% if @user.has_role?(:manager, nil) %> 
      <p>
        <%= f.label :usertype %><br />
        <%= f.check_box :usertype %>
      </p>
    <% end %>
    
        2
  •  2
  •   Andrey Viana    15 年前

    你也可以这样想:

    …在应用程序中\u helper.rb

    module ApplicationHelper
      include Acl9Helpers
    end
    

    <% show_to(:admin) do %>
      The content to show
    <% end %>
    
    推荐文章