2013-05-03 46 views
0

這是怎麼在前端當前日期被保存在自動數據庫(不datepickersñ東西):在數據庫Ruby on Rails的:的strftime()的主動管理形式

<% for order in @orders %> 
<%= order.updated_at.strftime("%Y-%m-%d %I:%M") %> 

這樣的作品,資料:2013 -05-03 21:32:59.847009

但問題是,對於後端我使用Active Admin,並且我正在創建表單,因此可以編輯訂單。 但事實是我真的不知道如何有應用相同的strftime函數,我認爲這將是這樣的:

f.input :updated_at, :date.strftime("%Y-%m-%d %I:%M") 

但它是不正確的。獲取錯誤:

undefined method `strftime' for :date:Symbol 

有誰知道如何在該行正確實現strftime的解決方案嗎?

回答

0

Active Admin使用config/locales中的yaml文件來確定日期的格式。

如果你希望你的默認日期是別的東西(假設英語,所以在配置/區域設置/ en.yml):

en: 
    date: 
    formats: 
     long: "%Y-%m-%d %I:%M" 
+0

是的,但是,如何告訴程序,我想要這個日期,這個(updated_at)變量? f.input:updated_at,:date - 沒有工作 – Starwave 2013-05-03 23:31:28

0

如果我得到你的問題:

t.timestamps表遷移,另外創建這些created_atupdated_at字段。這些字段是默認的datetime類型字段。並在創建或更新記錄時自動更新。

但是,如果你想添加類型的datetime領域,定義列類型:datetime 像:

運行rails g migration add_time_to_table

此命令創建一個遷移文件,編輯這個文件,如:

class AddTimeToTable < ActiveRecord::Migration 
    def self.up 
    add_column :table, :time, :datetime 
    end 

    def self.down 
    remove_column :table, :time 
    end 
end 

現在這個Table模型包含一個time屬性。 因此,在您ActiveAdmin視圖中可以輸入timedatetime格式

,如:

f.input :time 
1

試試這個:

f.input :updated_at, :value => order.updated_at.try(:strftime,'%Y-%m-%d %I:%M') 

try將阻止你獲得的例外,當日期是零。

+0

說:undefined方法'date'for# Starwave 2013-05-04 08:55:57

+0

對不起,當然它應該是'updated_at'而不是'date'。我會糾正我的答案。 – 2013-05-04 09:36:44