【问题标题】:Nested_form gem: passing parameters with link_to_addNested_form gem:使用 link_to_add 传递参数
【发布时间】:2012-10-28 03:22:09
【问题描述】:


我遇到了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 或类似的东西,但我不知道该怎么做。
谁能帮帮我?

【问题讨论】:

    标签: ruby-on-rails nested-forms nested-form-for


    【解决方案1】:

    我找到了解决此问题的方法:我添加了一个新操作,例如“generate_form”,我在其中创建新用户并向其添加新优惠,并且我为这个新用户生成带有嵌套字段的表单提供。

    当用户单击“添加报价”链接时,我对此 generate_form 操作执行 ajax 请求,传递类别 id,但作为响应我得到了,所以我剪切了嵌套表单,使用 jQuery 很容易,而且我需要替换零随机生成的offer id,都是由ajax“done”回调执行的。

    也许是相当丑陋的方式,但最终它奏效了。 如果有人可以提供另一种解决方案 - 我会很高兴看到它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多