嵌套形式的动态选择器

时间:2013-06-11 06:20:17

标签: ruby-on-rails-3 activeadmin formtastic

我要求表单能够根据另一个选择显示一个选择。

我有以下数据库模式:

order <-->> line_items <<-->> product <-->> campaign <br>
order <<--> customer

我有以下表格:

form do |f|
    f.inputs I18n.t("New Order") do
      f.input :customer, :collection => Customer.where(:id => order.customer_id).map{ |customer|     [customer. FirstName + ' ' + customer.LastName, customer.id] }
    end

      f.has_many :line_items do |app_f|
        app_f.input :quantity

        #some code that show campaign to filter :product_id

        app_f.input :product_id, :as => :select, :collection => Product.all.map{ |product| [product.name, product.id] }
          if app_f.object.id
            app_f.input :_destroy, :as => :boolean, :label => I18n.t("Delete")
          end
          app_f.form_buffers.last # to avoid bug with nil possibly being returned from the above
      end
    end
  f.actions
 end

我需要在此处显示一个广告系列选择器,用于过滤产品选择器,以便在嵌套表单中根据广告系列展示产品。 (类似于有产品类别过滤器)

知道怎么做吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

一旦您的表单达到了这种复杂程度,我建议不幸地将其替换为自定义模板 - Formtastic will only get you so far

在自定义表单中,您可以使用jQuery在产品选择中设置选项以反映广告系列的正确值 - 或者甚至将产品选择放入部分中,并在更改广告系列选择时通过ajax重新加载。