2016-01-21 148 views
0

所以,我是新來的軌所以這可能是一個新手的問​​題,但我沒有找到這個問題的任何地方任何幫助......保存日期與軌道數據庫

比方說,我有一個數據庫在這裏包含「故事」。唯一的列是標題和時間戳:

create_table :stories 
    add_column :stories, :title, :string 
    add_column :stories, :date, :timestamp 

我有我的意見的形式,所以我可以通過輸入查詢標題創建一個新的故事:

<%= form_for @story do %> 
    <input type="text" name="title" value="Story title" /> 
    <input type="submit" value="Start a story" /> 
<% end %> 

我有這個我控制器上:

def create 
    Story.create title:params[:title] 
    redirect_to "/stories" 
    end 

而模型'故事'工作正常。所以,當我創建一個新故事時,一切都看起來很好。然而,我的目標是能夠按日期排列故事(因此:日期時間戳)。 我該如何製作它,以便將當前日期存儲在日期時間戳中,以便我可以按日期對我的項目進行排序?

非常感謝你提前

+0

用英文書寫時請使用英文標點符號。 – sawa

+0

對不起,舊習慣很難^^ –

回答

0

而不必從頭開始重新創建表,在終端運行「軌道摹遷移add_timestamps_to_stories」 - 找到新創建的遷移文件,確保它有以下幾點:

def change 
    add_timestamps :stories 
end 

運行耙分貝:遷移

這增加了兩個新的列created_at和updated_at,您可以從這一點通過created_at進行排序。一定要更新以前沒有created_at日期的記錄(因爲它將爲零),所以你不會遇到錯誤。

+0

這實際上是最適合我的需求,我認爲。非常感謝你 ! –

0
def create 
    Story.create(title:params[:title], date: DateTime.now 
    redirect_to "/stories" 
end 
+1

這隻有當你想在創建時創建一個具有日期的故事。這也是模型遷移的默認列'(:created_at)' –

+0

我不知道這個方法。謝謝 ! –

1

如果你只想跟蹤你的故事,記錄的創建時間戳記,你可以做這樣的遷移:

create_table do |t| 
    t.string :title 
    t.timestamps 
end 

在除了你的標題字段,這將創建「created_at」和「updated_at」字段,由Andrew Kim建議,由ActiveRecord爲你處理。

+0

非常感謝你的解釋=) –

相關問題