我要求表单能够根据另一个选择显示一个选择。
我有以下数据库模式:
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
我需要在此处显示一个广告系列选择器,用于过滤产品选择器,以便在嵌套表单中根据广告系列展示产品。 (类似于有产品类别过滤器)
知道怎么做吗?
谢谢,
答案 0 :(得分:0)
一旦您的表单达到了这种复杂程度,我建议不幸地将其替换为自定义模板 - Formtastic will only get you so far。
在自定义表单中,您可以使用jQuery在产品选择中设置选项以反映广告系列的正确值 - 或者甚至将产品选择放入部分中,并在更改广告系列选择时通过ajax重新加载。