【发布时间】:2020-04-03 12:13:40
【问题描述】:
我正在考虑创建一个模型 User 和 Role。用户可以创建许多他们想要的角色。创建角色后,用户可以从列表中选择一个角色并分配给自己。因此,每个角色可以有多个用户,一个用户属于一个角色。但这似乎有点奇怪,因为角色应该首先存在。我不确定这是在用户和角色之间建立关系的正确方法,因为我希望用户可以编辑角色并应用于所有用户。
如果假设一个用户has_one角色和一个配置文件是belong_to用户,如果用户想要更新角色,他需要一个一个地编辑所有用户,这很浪费时间.这就是为什么我认为用户可以创建任意数量的角色,然后他们可以从列表中选择一个角色并分配给用户本身。
这是视图:
<%= form_for(@user, remote: true) do |f| %>
<%= f.text_field :email, class: "form-control", autofocus: true, autocomplete: "off" %>
<%= f.check_box :admin, class:"checkbox" %>
<%= f.check_box :owner, class:"checkbox" %>
<%= f.fields_for :user_role do |ff| %>
<%= ff.collection_select :role_id, @roles, :id, :role_name, include_blank: false %>
<% end %>
<%= f.button "Create", class: "btn btn-success" %>
<% end %>
我不确定我的想法是否正确,请指教。谢谢。
【问题讨论】:
-
有线!一个用户改变了自己的角色,它改变了其他用户的角色!我想知道你怎么知道谁有权改变角色,谁改变了角色!
-
用户没有改变自己的角色。相反,用户(例如经理)可以编辑他创建的角色,编辑后的角色将应用于关联的用户。比如你有5个员工,经理要换角色,经理要一一编辑。因此,经理可以创建角色列表,例如role_name 是分析师,is_accessible 设置为 false,则作为分析师的员工将无法访问其他功能。如果经理想要授予访问权限,他只需要编辑角色,那么该角色应该适用于所有分析师用户。
标签: ruby-on-rails activerecord associations