Показать или скрыть поля в зависимости от роли Acl9 - Ruby on Rails - PullRequest
1 голос
/ 31 мая 2010

Я использую Acl9 для управления ролями и хочу скрыть флажок usertype, если у пользователя есть роль: customer, и показать его, если роль: manager. Я хочу, чтобы просто: менеджер мог редактировать все поля, а некоторые для: customer.

Спасибо за вашу помощь!

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

2 голосов
/ 23 июня 2010

Вы также можете думать так:

.. в вашем application_helper.rb

module ApplicationHelper
  include Acl9Helpers
end

.. а по вашему мнению, что-то в этом роде

<% show_to(:admin) do %>
  The content to show
<% end %>
1 голос
/ 31 мая 2010

Согласно документации Acl9 , вы должны иметь возможность сделать что-то вроде этого:

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