问题 Rails 3.有条件地使用Formtastic显示字段


我正在使用ActiveAdmin和Formtastic。

我有一张发票表单,上面有一份下载菜单。

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错误。


3296
2018-01-02 18:22


起源

在我的头顶,怎么样 unless f.object.persisted? - Michelle Tilley
有同样的问题,将场地封闭在一个 if object.persisted? 阻止帮助。谢谢。 - pduersteler


答案:


尝试

form do |f|
  f.inputs "Shipment Details" do      
    if f.object.new_record?
        f.input :shipment_id, :label => "Shipment", :as => :select...
    end
    ...
  end
end

问题(部分)在此前回答: 访问formtastic中的表单对象


13
2018-01-06 14:57