2012-08-22 47 views
1

我有一個formtastic形式來收集報告生成參數。我知道formtastic被設計用於模型,但我需要在這裏使用它,因爲表單位於activeadmin頁面中。在沒有模型的formtastic形式的選擇字段上的默認值

這一切都很好,但我不能爲選擇設置默認值。我願意實施「卑劣的黑客攻擊」來實現這一目標。我寧願不實施假模型 只是爲了在表單上設置默認值。

形式的代碼看起來像事先此

<%= semantic_form_for "report", :url => report_admin_payments_path do |f| %> 
    <%= f.inputs do %> 
    <%= f.input :report_type, :as => :select, :collection => report_types, :input_html => {:style => "width:180px"} %>  
    <%= f.input :start_date, :as => :string, :input_html => {:class => 'datepicker', :style => "width:60px", :value => 1.month.ago.strftime("%Y-%m-%d")} %> 
    <%= f.input :end_date, :as => :string, :input_html => {:class => 'datepicker', :style => "width:60px", :value => Time.zone.now.strftime("%Y-%m-%d")} %> 
    <%= f.input :country, :as => :select, :collection => locales, :input_html => {:style => "width:180px"}%> 
    <% end %> 
    <%= f.actions :submit %> 
<% end %> 

感謝,

馬特

+0

這看起來像一個整潔的方法http://railscasts.com/episodes/219-active-model – mattfitzgerald

回答

0

這或類似的應該滿足您的需求的東西。

class LightModel 

    # Subclass this for a model that looks like an ar model but has no persistence 
    # good for formtastic forms 

    include ActiveModel::Naming 
    include ActiveModel::Validations 

    def initialize(attributes = {}) 
    @attributes = attributes 
    end 

    # read only atm 
    def method_missing(m, *args, &block) 
    @attributes[m] 
    end 

end 

感謝,

馬特

相關問題