ルビー オン レール 4.1
私は列挙型の役割でDeviseを使用しています。現在、ユーザーの作成時にデフォルトの役割が設定されています。ユーザーを作成するフォームにフィールドを追加して、列挙ロールを設定したいと考えています。
私はこれを読みましたが、新しい役割を利用する方法については述べていません。
これはユーザークラスです
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'
以前に列挙型を使用したことがなく、ドキュメントが役に立たないことが証明されています。列挙オプションを表示するにはどうすればよいですか?