如何在 Rails 4 中为多对多关联制作带有子表单的表单?

Posted

技术标签:

【中文标题】如何在 Rails 4 中为多对多关联制作带有子表单的表单?【英文标题】:How to make a form with a subform for many-to-many association in Rails 4? 【发布时间】:2014-02-18 22:05:06 【问题描述】:

基本上我想做这样的事情:

仅在我的情况下,我希望 User 能够使用一个表单注册多个 Disciplines

制作表格的正确方法是什么,以便我可以让这个人点击checkboxes他/她想参加什么样的学科?

【问题讨论】:

【参考方案1】:

您可以考虑将 rails nested attributes 与 ryanb 的 nested form gem 结合使用。

来自文档:

嵌套属性允许您在关联记录上保存属性 通过父母。默认情况下,嵌套属性更新是关闭的 您可以使用 #accepts_nested_attributes_for 类启用它 方法。当您启用嵌套属性时,属性编写器是 在模型上定义。

在高层次上,您可以像这样定义您的类:

class Employee
  has_many :orders
  accepts_nested_attributes_for :orders

end

class Order
  belongs_to :employee
end

【讨论】:

感谢您的提示,但给定的 gem 仅适用于 rails 3

以上是关于如何在 Rails 4 中为多对多关联制作带有子表单的表单?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 中为多对多关系(和中间表)做一个选择字段?

Django admin - 如何在自定义管理表单中为多对多字段添加绿色加号

如何在 Django REST 框架中为多对多字段定义“IsOwner”自定义权限?

在 Sequelize.js 中为多对多关系添加默认角色

在 Django 中为多对多字段冲突反向访问器和查询?

Rails 4 - best_in_place gem 和多对多关联