保存日期与轨道数据库

问题描述:

所以,我是新来的轨所以这可能是一个新手的问​​题,但我没有找到这个问题的任何地方任何帮助......保存日期与轨道数据库

比方说,我有一个数据库在这里包含“故事”。唯一的列是标题和时间戳:

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

对不起,旧习惯很难^^ –

而不必从头开始重新创建表,在终端运行“轨道摹迁移add_timestamps_to_stories” - 找到新创建的迁移文件,确保它有以下几点:

def change 
    add_timestamps :stories 
end 

运行耙分贝:迁移

这增加了两个新的列created_at和updated_at,您可以从这一点通过created_at进行排序。一定要更新以前没有created_at日期的记录(因为它将为零),所以你不会遇到错误。

+0

这实际上是最适合我的需求,我认为。非常感谢你 ! –

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

这只有当你想在创建时创建一个具有日期的故事。这也是模型迁移的默认列'(:created_at)' –

+0

我不知道这个方法。谢谢 ! –

如果你只想跟踪你的故事,记录的创建时间戳记,你可以做这样的迁移:

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

在除了你的标题字段,这将创建“created_at”和“updated_at”字段,由Andrew Kim建议,由ActiveRecord为你处理。

+0

非常感谢你的解释=) –