1

我是 Rails 的新手,并且被困在复杂表单的最佳实践中。

我有 3 层深嵌套的属性形式。用户 > 收件人 > Gift_profile。

我想为 _gift_profile_fields 创建一个单独的部分,这样我就可以在站点周围以多种形式使用这些字段,而不会重复自己。它们位于层次结构的不同级别。

在我添加 check_box_tag 之前它工作正常,我在其中手动指定了与另一个名为 Sport 的模型的 HABTM 关系的名称,该模型具有_and_belongs_to_many 礼品配置文件。

<%= f.label :gender, "Gender" %>
<%= f.select :gender, options_for_select(GiftProfile::GENDERS), :include_blank => true %>

<% for sport in Sport.find(:all) %>
<div>
 <%= check_box_tag "recipient[gift_profile_attributes][sport_ids][]", sport.id, @gift_profile.sports.include?(sport) %>
 <%= sport.sport %>
</div>

该表单完美运行,但显然仅适用于收件人表单。它无法在我认为我需要的其他表单位置上工作:

"user[recipient_attributes][gift_profile_attributes][sport_ids][]"

有没有帮助或方法来动态更新它,以便我可以继续在我的所有表单上使用部分?check_box_tag 是执行此操作的最佳方法,还是有其他 Rails 助手?

一位朋友建议我使用助手来根据控制器生成名称。

4

0 回答 0