Frage

ich habe ein Event Modell mit Feldstatus, der String ist, so dass es als a erscheint text_field. Aber ich habe eine Liste möglicher Status und ich möchte sie als select Kasten. Auch wenn ich auswähle cancel Status für eine Veranstaltung sollte mich nach dem Stornierungsgrund fragen. Ich kann dafür kein gutes Tutorial finden.

War es hilfreich?

Lösung

ActiveDmin verwendet formtastisch für die Form der Form, also Die Dokumentation von Formtastic sollte Ihre Fragen beantworten.

Sie können mit dem folgenden Code eine Auswahl anstelle eines Textfelds erhalten:

form do |f|
  f.status, :as => :select, :collection => STATUSES #whatever collection you want to display
end

Das Auslösen eines Ereignisses bei der Auswahl von "storniert" sollte mit JavaScript gelöst werden.

Andere Tipps

Im Folgenden finden Sie das Beispiel fast alle Anpassungen :)

ActiveAdmin.register Event do
  #Menu display index
  menu :priority => 1

  #Scopes
  scope :all
  scope :pending
  scope :approved
  scope :rejected
  scope :cancelled
  scope :featured

  #Filters  
  filter :city
  filter :user, :content_columns => :first_name
  filter :name
  filter :featured
  filter :location
  filter :details
  filter :start_datetime
  filter :end_datetime

  # New/Edit forms  
  form do |f|
    f.inputs do
      f.input :status, :label => "Event Status", :as => :select, :collection => Event::EVENT_STATUSES
      # Conditional show/hide using js
      cancel_reason_style = f.object.cancelled? ? "display:block" : "display:none"
      reject_reason_style = f.object.rejected? ? "display:block" : "display:none"
      f.input :reject_reason, :wrapper_html => {:style => reject_reason_style}, :hint => "Required if status event rejected"
      f.input :cancel_reason, :wrapper_html => {:style => cancel_reason_style}, :hint => "Required if status event rejected"
      f.input :city, :label => "Event Status"
      f.input :name, :label => "Name"
      f.input :image, :as => :file, :hint => f.template.image_tag(f.object.image.url(:medium))
      f.input :details, :input_html => { :class => 'autogrow', :rows => 5, :cols => 30, :maxlength => 10  }
      f.input :start_datetime
      f.input :end_datetime
      f.input :location, :input_html => { :class => 'autogrow', :rows => 5, :cols => 30, :maxlength => 10  }
      f.input :gmap_lattitude
      f.input :gmap_logitude
      f.input :email
      f.input :mobile
      f.input :website
    end
    f.buttons
  end

  index do
    column :name
    column :user
    column :city
    column :status
    column :start_datetime
#    column :end_datetime
    column :email
    default_actions
  end

  show do |event|
    attributes_table do
      row :name
      row :details
      row :user
      row :city
      row :status do event.status.titleize end
      # has_many :through
      row :themes do
        event.themes.collect{|t| t.name}.join(', ')
      end
      row :event_type do
        event.event_types.collect{|t| t.name}.join(', ')
      end
      row :start_datetime
      row :end_datetime
      row :location
      row :gmap_lattitude
      row :gmap_logitude
      row :email
      row :mobile
      row :created_at
      row :updated_at

    end
    active_admin_comments
  end

end

BEARBEITENEs stehen einige Themen zur Verfügung

https://github.com/vigetlabs/active_material

https://github.com/activeadmin-plugins/active_admin_theme

https://github.com/paladini/activeadmin-themes

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top