在Rails 4上注册多个before_save条件回调

利莫拉格尼

对于两个不同的领域,我需要对模型进行两种不同的计算。保存之前。

Class Event < ActiveRecord::Base
  #some relations
  before_save :method1, unless: :some_field_1?
  before_save :method2, unless: :some_field_2?

  def method1
    some_field_1 = some_other_field / 2
  end

  def method2
    some_field_2 = some_field_1 / 3
  end
end

我遇到的问题是,调用method2时some_field_1为null。我的猜测是,像我在做的那样声明before_save回调是错误的。

  • 第二个before_save是否会覆盖第一个?
  • 回调是否按照声明的顺序执行?

我知道我可以将这两种方法合并为一个,而没有条件和问题的解决方法,但是我更喜欢有条件的回调。我想知道正确的做法。文档对此不太清楚。

非常感谢!

编辑

备查。代码还可以。问题出在其他地方(数据库)!

RPinel

第二个before_save是否会覆盖第一个?

回调是否按照声明的顺序执行?

是的

由于您的属性不是布尔值,因此您可能不应该使用问号。尝试:

before_save :method1, unless: :some_field_1
before_save :method2, unless: :some_field_2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在rails 6上未触发before_save回调

来自分类Dev

Rails 5 - 当关系是可选的时,对belongs_to 存在的条件before_save 回调

来自分类Dev

Rails 4:如何取消“ before_save”回调中的保存?

来自分类Dev

在Rails before_save方法中大写多个属性

来自分类Dev

rails after_save回调条件

来自分类Dev

Rails:为什么调用parent上的before_save?

来自分类Dev

Rails:为什么调用parent上的before_save?

来自分类Dev

Rails:`before_save`会干扰`save?`

来自分类Dev

了解Ruby / Rails中的before_save

来自分类Dev

Ruby on Rails:before_save字段小写

来自分类Dev

Smart way to handle before_save rails

来自分类Dev

Rails before_save无法正常工作

来自分类Dev

Rails上的AngularJS回调

来自分类Dev

Rails-在before_save中获取旧值

来自分类Dev

Rails:before_save大写私有方法

来自分类Dev

Ruby on Rails:before_save字段转换为小写

来自分类Dev

rails 模型回调 before_validation

来自分类Dev

rails:rails的条件4

来自分类Dev

rails:rails的条件4

来自分类Dev

确定哪个回调负责在Rails中触发事件?after_save或before_destroy触发了回调?

来自分类Dev

确定哪个回调负责在Rails中触发事件?after_save或before_destroy触发了回调?

来自分类Dev

在create Rails上跳过回调

来自分类Dev

在::create或在::save上的rails 4 before_validation

来自分类Dev

Rails 4的回调delete_all

来自分类Dev

Rails 4的回调delete_all

来自分类Dev

Rails 4语法-多个条件

来自分类Dev

Rails 4.使用before_validation回调时的奇怪行为

来自分类Dev

堆栈级别太深,Rails4中的after_save回调

来自分类Dev

回调before_save似乎不起作用