首页 文章

通过Form使用Rolify以及Devise和Cancan动态添加角色

提问于
浏览
1

我只是按照教程“https://github.com/EppO/rolify/wiki/Tutorial”它非常好,工作正常 . 但我的问题不能通过表单添加角色而不使用Rails控制台 .

<div class="field"><%= user_form.label :email %>
<%= user_form.email_field :email %></div> <div class="field"><%= user_form.label :password %>
<%= user_form.password_field :password %></div> <div class="field"><%= user_form.label :password_confirmation %>
<%= user_form.password_field :password_confirmation %></div> <div class="field"> <%= f.label :roles %> <div class="controls"> <% Role.all.each do |role| %> <%= check_box_tag "user[role_ids][]", role.id, @user.role_ids.include?(role.id) %> <%= role.name %>
<% end %> </div> </div> <% end %>

Role列连接到角色表(Rolify Roles)

Here is my role.rb

class Role <ActiveRecord :: Base

has_and_belongs_to_many:users,:join_table =>:users_roles

belongs_to:resource,:polymorphic => true

User.rb

class User <ActiveRecord :: Base

belongs_to:account,:inverse_of =>:users

验证:account,:presence => true

rolify

attr_accessible:role_ids

#包括默认设计模块 . 其他可用的是:#:确认,:可锁定,:超时和:omniauthable

设计:database_authenticatable,:registerable,:recoverable,:rememberable,:trackable,:validatable

#为您的模型设置可访问(或受保护)属性

attr_accessible:email,:password,:password_confirmation,:remember_me,:role_ids

#attr_accessible:title,:body

has_many:auditinits

结束

任何帮助都很感激!!

1 回答

  • 1

    User Form 中,为角色做一个下拉选择,

    <%= user_form.select :role,options_from_collection_for_select(Role.all,"name","name) %>
    

    修改 Users Controller 中的创建操作

    @user = User.new(user_params)
    
    @user.add_role params[:user][:role]
    

相关问题