#ruby-on-rails #ruby #ruby-on-rails-5
Вопрос:
У меня проблема.
В моей системе, в разделе редактирования пользователей, у меня есть создаваемые функции, которые я могу использовать или предоставлять пользователям ROLES_CREATEABLE = [АДМИНИСТРИРОВАНИЕ, УПРАВЛЕНИЕ ПЕРСОНАЛОМ, КАЧЕСТВО, МЕНЕДЖЕР, БЕЗОПАСНОСТЬ, БУХГАЛТЕРСКИЙ УЧЕТ, ФИНАНСОВЫЙ, ЮРИДИЧЕСКИЙ, ИТ, DP, КОММЕРЧЕСКИЙ]
Но у меня есть те, которые предназначены для администраторов, которые не могут быть предоставлены или отозваны в издании ROLES_ADMIN = [ADMIN, DEV, ADMIN_EMPRESA]
И у меня есть свои возможные функции, которые уже есть у пользователя. Массив под названием role_possible
Представляет собой комбинацию всех функций, которыми обладает пользователь
Моя проблема в том, что когда я редактирую роли своего пользователя, администраторы теряют свои роли
Мой контроллер править:
def edit
@user = User.find(params['id'])
@roles_possible = {}
if @user.roles_possible
@user.roles_possible.each do | role |
@roles_possible[role] = true
end
end
end
Мой взгляд:
<% User::ROLES_CREATEABLE.each do |role| %>
<div class="radio col-sm-4 col-md-6 col-lg-6">
<label>
<%= check_box_tag "roles_possible[#{role}]",true, @roles_possible ? @roles_possible["#{role}"] : false%>
<%= role %>
</label>
</div>
<% end %>
при передаче byebug и вызове @roles_possible перед сохранением у меня есть:
@roles_possible после сохранения у меня есть:
мои возможные роли на португальском языке
Как я могу решить эту проблему?
Помня, что я не могу поместить свой РОЛЕВОЙ_АДМИН в флажок для редактирования