Ruby on Rails 4.1형식에서 열거 형을 선택하여 역할을 설정하십시오.
저는 enum 역할을 가진 Devise를 사용하고 있습니다. 현재 사용자 생성시 기본 역할을 설정합니다. 열거 형 역할을 설정하기 위해 사용자를 생성하는 양식에 필드를 추가하고 싶습니다.
나는 this을 읽었지만 새로운 역할을 활용하는 방법은 밝히지 않았습니다.
<div class="form-group">
<%= f.collection_select :role, User.roles, :id, :enum, {prompt: "Select a role"}, {class: "form-control input-lg"} %>
</div>
오류 :
이
이 내가 열거 역할을 선택하는 선택을하려고 양식의 일부인 사용자 클래스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
입니다
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'
전에 열거 형을 사용한 적이 없으며 the documentation이 도움이되지 않습니다. 열거 옵션을 표시하려면 어떻게합니까?
남은 유일한 일은 Devise :: RegistrationsController # create를 재정 의하여 지금 역할을 허용하는 것입니다. +1 – DDDD
등록 컨트롤러를 무시할 필요가 없습니다. 응용 프로그램 컨트롤러에서이 작업을 수행 할 수 있습니다. 내 [Rails Devits Tutorial] (http://railsapps.github.io/rails-devise/) 또는 [Devise README] (https://github.com/plataformatec/devise)를 참조하십시오. –
나는 그것이 게으른 방법이 아니라고 생각했다. 나는 before_filter와 함께 Users : RegistrationsController를 만들었습니다 : configure_permitted_parameters 그 sanitizer.for (: sign_up) 나는 그 코드를 게시하면 그것을 할 수있는 안전한 방법인지 알려주시겠습니까? – DDDD