2014-10-30 178 views
0

創建新記錄時,我想將默認日期設置爲提前一個月。Activeadmin設置默認日期

與其他字段默認設置在遷移,但你會在這種情況下設置它?

enter image description here


更新

我試着將它添加到

型號/ invoice.rb

class Invoice < ActiveRecord::Base 
before_create :set_due_date 

private 
    def set_due_date 
     self.due_date = DateTime.now + 30 
    end 
end 

管理/ invoice.rb

form do |f| 
    f.inputs "Options" do 
     f.input :due_date, :as => :datepicker 
    end 
end 

遷移

create_table :invoices do |t| 
    t.datetime :due_date 
end 

回答

2

如果我理解正確,你應該能夠在任何的「DUE_DATE」字段是模型添加回調。可能是這樣的:

before_create :set_due_date 

def set_due_date 
    self.due_date = DateTime.now + 30 
end 
+0

我試圖將它添加到模型,但它沒有工作。 – sasdev 2014-10-31 17:48:24

+0

好吧我只是嘗試一個獨立的應用程序,它爲我工作。您是否收到錯誤或沒有填充任何內容?你重新啓動了服務器/控制檯嗎? – jgraft 2014-10-31 18:27:14

+0

它確實有效。我只是沒有注意到,因爲它在創建時不顯示字段中的值。但是,當保存記錄時,正確添加了到期日期。謝謝 – sasdev 2014-10-31 18:33:41

0

我結束了使用初始化。這導致在頁面呈現之前設置該值。

after_initialize :set_due_date 

def set_due_date 
    self.due_date ||= DateTime.now + 30 
end