Rails 3. Условно показать поля с помощью Formtastic - PullRequest
11 голосов
/ 02 января 2012

Я использую 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 Ответ

14 голосов
/ 06 января 2012

1001 * попробовать *

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

На вопрос (частично) ранее был дан ответ: Доступ к объекту формы в форме

...