0
我正在編寫CMS,並在爲用戶進行角色管理時遇到問題。我的User
模型中有一個布爾字段:admin
,我在表單中創建了一個複選框,以創建的用戶爲管理員。這裏是users_controller
:欄中的「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
,這是我的表單:
<%= 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
我做了什麼錯?
要選擇角色標籤並創建'枚舉'形式角色 – uzaif
以隱藏字段a s'<%= f.hidden_field:admin,value:''%>'或乾脆''%= f.hidden_field:admin%>' – Sravan