gpt4 book ai didi

ruby-on-rails - 如何在 ActiveAdmin 中实现多对多?

转载 作者:行者123 更新时间:2023-12-04 05:52:55 25 4
gpt4 key购买 nike

有一个多对多:

class Employee < ActiveRecord::Base
has_many :employees_and_positions
has_many :employees_positions, through: :employees_and_positions
end

class EmployeesAndPosition < ActiveRecord::Base
belongs_to :employee
belongs_to :employees_position
end

class EmployeesPosition < ActiveRecord::Base
has_many :employees_and_positions
has_many :employees, through: :employees_and_positions
end

添加员工时如何在表单中实现选择(check_boxes)职位?
我写了这个变体:
f.inputs 'Communications' do
f.input :employees_positions, as: :check_boxes
end

它在表单中显示职位列表,但不向表 (employees_and_positions) 保存任何内容。
怎么修?

最佳答案

假设你有一个 employee ,你可以引用employees_positions的id使用 employee.employees_position_ids 关联.因此,您可以批量分配预先存在的 EmployeesPosition每个对象使用一个复选框 EmployeesPosition ,但您需要使用 employee_position_ids属性”

= f.input :employee_position_ids, as: :check_boxes, collection: EmployeesPosition.all

另外,请确保您已将 employee_position_ids 列入白名单您的事件管理资源中的参数:
ActiveAdmin.register Employee do
permit_params employee_position_ids: []
end

http://activeadmin.info/docs/2-resource-customization.html

关于ruby-on-rails - 如何在 ActiveAdmin 中实现多对多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37049705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com