我正在创建用户ACL我有两个模型,一个是users_group
,另一个是access_sections
。
现在让我们知道我有2个access_sections(页面,用户)
我想将access_sections
与users_group
相关联,
现在我已经做了
我创建了多对多关联,添加了新的连接表access_sections_user_groups
每当我添加新用户组我传递实例变量以获取所有可用的access_sections时,我将它们显示为新用户组表单中的复选框,一旦我检查任何访问部分,我在数组中循环并插入'table {{中的所有元素1}}'access_sections_user_groups
id和users_group
id现在一切正常,我想在编辑用户组时执行此操作,如果特定access_sections
与user_group关联,则应检查我的复选框
user_group_controller.rb
access_sections
USER_GROUP / _form.html.erb
def create
@user_group = UserGroup.new(group_params)
if @user_group.save
flash[:notice] = "User group added !"
flash[:type] = "success"
if params[:user_group][:access_sections].present?
params[:user_group][:access_sections].each do |f|
UserGroup.find(@user_group.id).access_sections << AccessSection.find(f)
end
end
redirect_to(:action => "index")
else
flash[:notice] = "error while adding new group!"
flash[:type] = "danger"
render("add_new")
end
end
答案 0 :(得分:0)
应该工作
f.check_box(:access_section_ids, { :multiple => true }, k.id, nil)
因此,您需要像这样更新模型:
def create
if @user_group.create(user_group_params)
# ...
end
end
def user_group_params
params.require(:user_group).permit(access_section_ids: [])
end