我正在使用ActiveAdmin和Formtastic。
我有一个发票表格,其中包含 cargo 的下拉菜单。
form do |f|
f.inputs "Shipment Details" do
f.input :shipment_id, :label => "Shipment", :as => :select, :collection => Shipment.find(invoiceless_shipments, :order => "file_number", :select => "id, file_number").map{|v| [v.file_number, v.id] }
f.input :issued_at, :label => "Date", :as => :datepicker
... more fields ...
end
如果表单是“新发票”表单,我只想显示货件的选择菜单。
如果表单是编辑表单,我不想显示“货件”下拉选择菜单。因此,如果表单是编辑表单,则不会更改。
我正在考虑做类似的事情
if params[:action] != 'edit'
f.input :shipment_id, :label => "Shipment", :as => :select...
end
但出现DSL错误。
最佳答案
尝试
form do |f|
f.inputs "Shipment Details" do
if f.object.new_record?
f.input :shipment_id, :label => "Shipment", :as => :select...
end
...
end
end
问题(部分)在此之前得到了解答:Accessing object of form in formtastic