2015-04-08 25 views
0

我不知道如何在ActiveAdmin中格式化時間。 這是我的索引列表:ActiveAdmin中的時間格式

index do 
    selectable_column 
    column :book 
    column :user 
    column :time 
    actions 
    end 

我怎樣才能格式字段:時間%H:%I:%s嗎?可能嗎。 我需要這樣的東西:

:format => :short 

回答

0

如果你想改變它的每一個地方,然後修改配置/區域/ en.yml格式像這樣

en: 
    time: 
    formats: 
     long: "%Y-%m-%d %H:%M:%S" 

否則只是你現在的列然後做

column(:time) { |time| object.time.strftime("%Y-%m-%d %H:%M:%S") } 
+0

當我改變time.formats。升ong does working,但我需要time.formats.short :) 未定義的方法'strftime'for#<結果:0x007fd8a9867750> – dziorkowsky

1

好方法:使用裝飾器。

的好辦法:column (:time) {|obj| obj.time.to_s(:short)}

隨着裝飾(創建一個裝飾目錄)

app/decorators/results_decorator.rb

class ResultsDecorator 
    def intialize(result) 
    @result = result 
    end 

    def time 
    unless @result.time.nil? 
     @result.time.to_s(:short) 
    end 
    end 
end 

app/admin/result.rb

index do 
    selectable_column 
    column :book 
    column :user 
    column ('Time') {|result| ResultsDecorator.new(result).time } 
    actions 
end 
+0

錯誤的參數數目(1代表0) – dziorkowsky

+0

更好的寫一個裝飾器。 http://nithinbekal.com/posts/ruby-decorators嘗試自己手動一個。 – bsvin33t

+0

@ franek100milionow我給你一個如何手工裝飾的例子。您可以將其用作模板,並將所有視圖邏輯推送到類似的位置,以便您的代碼更易於測試,從而更易於維護。 – bsvin33t