假设我们有User ActiveRecord模型。
class User < ActiveRecord::Base
has_many :users_roles, dependent: :destroy
end
用户角色ActiveRecord模型。
class UsersRole < ActiveRecord::Base
enum role: { guest: 0,
os_employee: 1,
os_contractor: 2,
os_moderator: 3,
os_administrator: 4,
learner: 5,
learner_representative: 6,
teacher: 7,
head_teacher: 8,
system_administrator: 9,
observer: 10 }
end
如何创建一个允许我们更改用户角色的表单和相应的控制器操作?表单可以是具有嵌套角色属性的用户表单,也可以是用户角色列表的独立表单。
答案 0 :(得分:1)
您可以使用构建来使用嵌套属性 @ user.roles.build
= f.fields_for :roles do |r|
= r.select(:role, options_for_select(Role.pluck(:role)))
答案 1 :(得分:0)
不清楚为什么需要特定的控制器操作。
您可以直接在视图中添加,作为表单的一个字段:
f.select :role, UsersRole.roles.keys.map { |r| [r.humanize, r] }