Ich schreibe ein CMS und ich stellte ein Problem beim Erstellen einer Rollenverwaltung für Benutzer. Ich habe ein boolesches Feld :admin
in meinem User
Modell, und ich habe ein Kontrollkästchen in meinem Formular, um den erstellten Benutzer als Administrator festzulegen. Hier ist die users_controller
:Checkbox "NoMethodError" in Schienen
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
und dies ist meine Form:
<%= 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 %>
Aber jede dieser Optionen gibt mir folgendes:
NoMethodError in Multiflora::Users#edit
undefined method `merge' for "":String
Was ich falsch gemacht habe?
Sie wollen für Rollen Tag ausgewählt haben Sie erstellen 'Enum 'Formularrolle – uzaif
Verborgenes Feld übernehmen a s '<% = f.hidden_field: admin, value: ''%>' oder einfach '<% = f.hidden_field: admin%>' – Sravan