我想允许用户从新用户表单的复选框中选择他们的角色。
以下是我的相关文件。
模型:
## models\user.rb
class User < ActiveRecord::Base
rolify
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
## models\role.rb
class Role < ActiveRecord::Base
has_and_belongs_to_many :users, :join_table => :users_roles
belongs_to :resource, :polymorphic => true
scopify
end
控制器:
##controllers\users\registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
# before_filter :configure_sign_up_params, only: [:create]
# before_filter :configure_account_update_params, only: [:update]
# GET /resource/sign_up
def new
super
end
...
end
查看:
<div class="field">
<%= f.label :roles %>
<div class="controls">
<% Role.all.each do |role| %>
<%= check_box_tag "users_roles[role_ids][]", role.id, @user.role_ids.include?(role.id) %>
<%= role.name %><br />
<% end %>
</div>
</div>
我可以使用
从控制台添加角色 user.add_role? :admin
它工作正常。 role_ids列位于名为user_roles的表中。如何从新用户表单写入此表?