【发布时间】:2016-01-21 15:09:47
【问题描述】:
我正在使用邀请来邀请新用户。
我有一个带有枚举角色列的用户模型
class User < ActiveRecord::Base
enum role: [:client, :trainer, :admin]
我的新用户表单的角色列具有以下内容
.form-group
= f.label :role, class: "col-sm-2 control-label"
.col-sm-10
= f.select :role, ['client', 'trainer', 'admin'], {},{class: "form-control"}
如果我选择“客户端”并提交表单,我可以看到正确的参数已提交"role"=>"client",但是当我检查数据库时,它总是具有“培训师”角色
users_controller
def create
@user = User.new(user_params)
if User.find_by_email(@user.email).nil?
User.invite!(:email => @user.email)
redirect_to(users_path, :notice => 'User created')
else
render :action => 'new'
end
end
def user_params
params.require(:user).permit(:email, :role, :name)
end
【问题讨论】:
-
您的 user_params 是否允许角色?
-
@MarceloRisoli 是的,当然...
-
为什么会被否决?
-
试试
= f.select :role,User.roles.values, {},{class: "form-control"}
标签: ruby-on-rails ruby-on-rails-4 enums devise devise-invitable