加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – before_save不使用Rails 3

发布时间:2020-12-16 19:27:11 所属栏目:百科 来源:网络整理
导读:我有这个项目模型: class Project ActiveRecord::Base validates :status,:inclusion = { :in = ['active','closed'] } validates :title,:presence = true,:length = { :in = 4..30 } before_save :set_default_status_if_not_specified private def set_d
我有这个项目模型:
class Project < ActiveRecord::Base
  validates :status,:inclusion => { :in => ['active','closed'] }
  validates :title,:presence => true,:length => { :in => 4..30 }

  before_save :set_default_status_if_not_specified

  private 

  def set_default_status_if_not_specified
    self.status = 'active' if self.status.blank?
  end
end

如果我创建一个这样的新对象:

Project.create!(:title => 'Test 2',:pm_id => 1)

我收到这些错误:验证失败:状态未包含在列表中
但是状态字段应该在保存之前填写.

解决方法

那是因为它在before_save之前验证.

http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

(-) save

(-) valid

(1) before_validation

(-) validate

(2) after_validation

(3) before_save

(4) before_create

(-) create

(5) after_create

(6) after_save

(7) after_commit

你可以尝试before_validation吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读