【问题标题】:In a single form, linking two instances of two models with habtm在单一形式中,使用 habtm 链接两个模型的两个实例
【发布时间】:2012-06-18 15:08:07
【问题描述】:

我正在使用 Rails 3。

我有一个 Product 模型和一个 Group 模型(一个 group has_many users,通过成员资格)。

我想为产品模型构建new.html.erb 表单,并且在表单的末尾,我希望用户能够选择可以从哪些组中访问他的产品的成员想添加。

所以,我的目标是列出用户所属的组,并为每个组添加一个复选框。然后,创建插入的产品与用户在提交表单时选择的不同组之间的关联,但我真的不明白如何实现这一点,因为我读过的所有文档都使用 BUILD 或 CREATE 方法定义了一个新的组的实例,而不是现有的。

是否可以使用嵌套形式以及产品和组之间的 HABTM 关系?或者我应该使用新模型 product_group_relationship 使用带有 has_many_through 关联的嵌套表单?还是应该使用嵌套表单以外的其他东西?

我是 Rails 的新手,在这里有点迷茫,所以如果有经验的人能指导我一点,将不胜感激!

【问题讨论】:

    标签: ruby-on-rails associations nested-forms has-and-belongs-to-many


    【解决方案1】:

    form_for 助手带有一个不错的额外方法包,例如:fields_for,它使您能够为 has_many_through 关系添加嵌套属性。

    我建议阅读以下内容: http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for

    并确保您相应地设置模型验证

    【讨论】:

    • 好的,所以我需要更改为 has_many_through 关系来做我想做的事情我理解你的回答吗?
    • 从您的引述中可以看出:“我有一个 Product 模型和一个 Group 模型(一个组 has_many 用户,通过会员资格)”这似乎是正确的解决方案,尽管 fields_for 既适用于 has_many 也适用于 has_many ,请参阅为你自己:)
    • 这里的“has_many_through”在 GROUP 和 USER 模型之间,而我正在尝试做的关联是在 GROUP 和 PRODUCT 模型之间,它们目前处于 HABTM 关系中。你会保留你的答案还是会改变它? :-)
    • 先生,我会坚持我的回答。但是请务必仔细阅读有关模型验证和嵌套属性的文档
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2014-10-29
    • 2019-11-25
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多