我是铁杆新手,并且在复杂形式的最佳实践中遇到困难。
我有3层深嵌套属性表单。用户>收件人> Gift_profile。
我想为_gift_profile_fields创建一个部分,这样我就可以在网站周围使用多种形式的字段,而不是重复自己。它们位于层次结构的不同级别。
一直工作正常,直到我添加check_box_tag,我手动指定HABTM关系的名称与另一个名为Sport的模型,has_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][]"
是否有帮助器或动态更新此方法以便我可以继续在所有表单上使用partial? check_box_tag是最好的方法吗?还是有另一个铁路助手?
一位朋友建议我使用助手根据控制器生成名称。