How to create collection_check_boxes from hashed enum
:
class User < ApplicationRecord
has_many :roles, dependent: :destroy
accepts_nested_attributes_for :roles, allow_destroy: true
end
class Role < ApplicationRecord
belongs_to :user
enum permission: {
read_contact: 0,
write_contact: 1,
read_message: 2,
write_message: 3
}
end
I tried in many ways:
= form_for(@user) do |f|
= f.collection_check_boxes :permissions, Role.permissions, :last, :first
= f.submit class: "button"
I got undefined method permissions for #<User:0x00007...>
If I try with:
= form_for(@user) do |f|
= f.collection_check_boxes :roles, Role.permissions, :last, :first
= f.submit class: "button"
User controller:
def update
@user = User.new(user_params)
if @user.save
...
end
def user_params
params.require(:user).permit(:roles)
end
I got Unpermitted parameter: :roles
Despite of looking at params:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"...", "user"=>{"roles"=>["", "1", "2"]}, "commit"=>"Update", "id"=>"3"}
Also this is check to create, how to uncheck to delete?
Aucun commentaire:
Enregistrer un commentaire