2016-07-30 3 views
0

CMS를 작성 중이고 사용자를위한 역할 관리를 수행하는 동안 문제가 발생했습니다. 나는 내 User 모델에 부울 필드 :admin을 가지고 있으며 양식으로 작성한 사용자를 관리자로 설정하는 확인란을 만들었습니다.난간의 "NoMethodError"체크 박스

def create 
    @user = User.create(user_params) 
    respond_to do |format| 
    if @user.save 
     format.html { redirect_to users_path } 
     format.json { head :no_content } 
    else 
     format.html { render :new } 
     format.json { render @user.errors, status: :unprocessable_entity } 
    end 
    end 
end 

def edit 
end 

def update 
    respond_to do |format| 
    if @user.update(user_params) 
     format.html { redirect_to users_path } 
     format.json { head :no_content } 
    else 
     format.html { render :edit } 
     format.json { render @user.errors, status: :unprocessable_entity } 
    end 
    end 
end 

이 내 형태 : 여기에 users_controller입니다

<%= form_for @user do |f| %> 
    # Here go fields for username, email and password 
    <p> 
    <%= f.label "Set as administrator" %> <br /> 
    <%= f.hidden_field :admin, '' %> 
    # I also tried with <%= f.hidden_field :admin, false %> 
    <%= f.check_box :admin, checked = true %> 
    # Or <%= f.check_box :admin, data: { switch: true } %> 
    </p> 
<% end %> 

그러나 이러한 옵션은 다음 날 반환

NoMethodError in Multiflora::Users#edit 

undefined method `merge' for "":String 
내가 잘못했을 무엇

?

+0

및 체크 박스를 간단하게

<%= f.hidden_field :admin %>,

<%= f.hidden_field :admin, value: '' %>으로 숨겨진 필드를 타고'열거 'form role – uzaif

+0

숨겨진 필드 가져 오기 <% = f.hidden_field : admin, value : ''%>'또는 단순히 <% = f.hidden_field : admin %>' – Sravan

답변

2



또는 당신은 당신이 창조 하셨 는가 역할에 대한 태그를 선택합니다 <%= f.check_box :admin, :checked => true %>

<%= form_for @user do |f| %> 
    # Here go fields for username, email and password 
    <p> 
    <%= f.label "Set as administrator" %> <br /> 
    <%= f.hidden_field :admin, value: '' %>/<%= f.hidden_field :admin %> 
    <%= f.check_box :admin, :checked => true %> 
    </p> 
<% end %> 
+0

감사합니다! – AlexNikolaev94