`
roreric
  • 浏览: 3172 次
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

ActiveRecord中设置字段默认值的方法

    博客分类:
  • RoR
阅读更多
想做一个Event的记录
先建立了一个scaffold
rails g scaffold Event name:string description:text status:string
之后
rake db:migrate
然后修改controllers/events_controller.rb
增加
validates :name,:status :presence => true
让name和status必输
然后想让status默认都是Y
这时候问题来了,刚才忘记在建migration里面把数据库里status的字段默认值设置成Y了
找到几个选择
1.新增一个migration或者db直接操作(不推荐),为status加上默认值
2.在model里after_initialize加一个方法
  after_initialize :default_values
  def default_values
    self.status ||= 'Y'
  end
3.这个比较无敌,有一个gem
https://github.com/FooBarWidget/default_value_for

最后选择了方法2~
1
7
分享到:
评论
1 楼 sucreat 2015-05-07  
使用第二种方法,如果是单纯的查询,会导致调用该方法将原来的值替换掉。

相关推荐

Global site tag (gtag.js) - Google Analytics