Рельсы 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.
1 ответ:
Попробуйте
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