大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – Rails迁移将当前日期设置为默认值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
create_table "test",:force => true do |t| t.date "day" end
我想将当前日期设置为此列的默认值.
我试试如下:
create_table "test",:force => true do |t| t.date "day",:default => Date.today end
但是默认是2月1日,所以如果我明天创造新的纪录,那么今天还是2月1日(期望是2月2日)
感谢您的回应!
注意:我在rails 3中使用SQLite
1)使用after_initialize回调设置默认值
class Test def after_initialize self.day ||= Date.today if new_record? end end
仅当您需要在初始化之后访问该属性并保存该记录之前,才能使用此方法.该方法在加载查询结果时具有额外的处理成本,因为必须为每个结果对象执行块.
2)使用before_create回调设置默认值
class Test before_create do self.day = Date.today unless self.day end end
此回调由您的模型上的创建调用触发.
There are many more callbacks.例如,在创建和更新之前设置验证之前的日期.
class Test before_validation on: [:create,:update] do self.day = Date.today end end
3)使用default_value_for宝石
class Test default_value_for :day do Date.today end end
以上是大佬教程为你收集整理的ruby-on-rails – Rails迁移将当前日期设置为默认值全部内容,希望文章能够帮你解决ruby-on-rails – Rails迁移将当前日期设置为默认值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。