我遇到了nested_form gem 的问题。
我有 5 个模型:类别、组、参数、报价和价值。所以Offers属于Category,Values属于Offers和Parameters,Parameters属于Groups,Groups属于Category。
典型的例子就像
类别:汽车 组:发动机参数 参数:音量 参数:功率 组: 制片人 参数:生产者名称 参数:年份 参数:国家 类别:自行车 组: 技术参数 参数:轮径 参数:重量 组: 制片人 参数:生产者名称 参数:年份 参数:国家
这个参数的值属于offer。也许看起来很复杂,但在我看来,我已经很清楚地说明了它。我想构建表单,允许在用户注册期间创建许多优惠。类别、参数和组是固定的。现在我的模板是:
= simple_nested_form_for @user
Category.all.each do |category|
span= category.name
= f.simple_fields_for :offers do |f_offer|
= f_offer.input :category_id, :as => :hidden
- category.groups.each do |group|
span= group.name
- if f_offer.object.values.where("parameter_id IN (?)", group.parameters).empty?
- group.parameters.each do |parameter|
- variant.values.build(:parameter_id => parameter.id)
/ In this partial inputs for offer values in format parameter_name: input_field
= render :partial => 'values', :locals => { :f_offer => f_offer,
:f_group => group }
= f_variant.link_to_remove t("views.remove_variant")
= f.link_to_add "Add offer", :offers
它几乎可以正常工作,但问题是当我单击“添加报价”链接时 - 添加了最后一个类别的参数的表单。因此,对于上面给出的示例,当我为汽车类别单击“添加报价”时 - 我看到一堆参数不是汽车,而是自行车!看起来我应该将类别传递给 simple_fields_for 或类似的东西,但我不知道该怎么做。
谁能帮我?