Ruby on Rails 4.1
我正在将 Devise 与枚举角色一起使用。目前,它在创建用户时使用默认角色。我想在创建用户的表单中添加一个字段来设置枚举角色。
I read this https://github.com/RailsApps/rails-devise-pundit#roles但它没有说明如何利用新角色。
这是用户类
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
enum role: [:user, :vip, :admin, :developer, :marketing, :support, :translator]
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :user
end
这是表单的一部分,我试图在其中选择一个枚举角色:
<div class="form-group">
<%= f.collection_select :role, User.roles, :id, :enum, {prompt: "Select a role"}, {class: "form-control input-lg"} %>
</div>
错误:
NoMethodError - undefined method `enum' for ["user", 0]:Array:
actionview (4.1.1) lib/action_view/helpers/form_options_helper.rb:761:in `value_for_collection'
我以前从未使用过枚举文档 http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html事实证明没有帮助。如何使枚举选项显示?