ruby-on-rails – Rails生成的迁移没有设置:null => false到
发布时间:2020-12-17 02:39:45 所属栏目:百科 来源:网络整理
导读:我创建了一个全新的rails应用程序,生成一些脚手架和一些模型.经过几次测试后,我意识到t.timestamps生成的列不包含“传统”:null =错误的选择.我需要这种行为,我看不出这是做什么的. 我重新创建了一个新的应用程序,认为这是一个新的rails 4功能,但我无法获得
我创建了一个全新的rails应用程序,生成一些脚手架和一些模型.经过几次测试后,我意识到t.timestamps生成的列不包含“传统”:null =>错误的选择.我需要这种行为,我看不出这是做什么的.
我重新创建了一个新的应用程序,认为这是一个新的rails 4功能,但我无法获得保存行为.在这个应用程序中,timespamp正常工作. 在我创建帖子的rails控制台中的“窃听应用”中,我们可以看到: Loading development environment (Rails 4.0.1) 2.0.0-p247 :001 > Post.create(title:"test") (0.1ms) begin transaction SQL (8.6ms) INSERT INTO "posts" ("created_at","title","updated_at") VALUES (?,?,?) [["created_at",Wed,27 Nov 2013 21:19:01 EST -05:00],["title","test"],["updated_at",27 Nov 2013 21:19:01 EST -05:00]] (0.8ms) commit transaction => #<Post id: 1,title: "test",content: nil,excerpt: nil,dashboard: nil,created_at: "2013-11-28 02:19:01",updated_at: "2013-11-28 02:19:01"> 2.0.0-p247 :002 > Post.last Post Load (0.4ms) SELECT "posts".* FROM "posts" ORDER BY "posts"."id" DESC LIMIT 1 => #<Post id: 1,created_at: nil,updated_at: nil> 时间戳已设置但未保存在数据库中. 我想我错过了一些东西.知道如何恢复默认行为吗? 编辑:迁移文件 class CreatePosts < ActiveRecord::Migration def change create_table :posts do |t| t.string :title t.text :content t.text :excerpt t.boolean :dashboard t.timestamps end end end 解决方法
最后我发现了错误:
经过几次尝试,我检查配置目录中的所有内容.我看到时间戳的唯一可能性是时区配置. 评论后(config / application.rb): #config.active_record.default_timezone = 'Eastern Time (US & Canada)' 一切都恢复正常了!不再:null => false,但时间戳能够在数据库中记录. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 如果全局变量有默认的外部链接,为什么我们不能直
- c# – 我可以使用扩展方法继承吗?
- c# – Lambda Expression`x => x.Property`变为`
- restful转jsonp接口的filter实现
- 设计模式--6大原则--依赖倒置原则
- SQLite3简单C++包装类源码示例
- No grammar constraints (DTD or XML Schema) re
- AJAX - $.get( url, [data], [success], [type]
- ruby-on-rails-3.2 – 在D3的Rails应用程序中显示
- reactjs – react-router如何使用Javascript对象
热点阅读