私は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
私が間違って何をしましたか?
として
<%= f.hidden_field :admin, value: '' %>
、または単に
<%= f.hidden_field :admin %>
やチェックボックスなど、あなたが '列挙型を作成した隠しフィールドを取りますフォームロール – uzaif
隠しフィールドを取る<%= f.hidden_field:admin、value: ''%> 'または単に<%= f.hidden_field:admin%>' – Sravan