Ruby on rails rails回调不工作

Ruby on rails rails回调不工作,ruby-on-rails,callback,Ruby On Rails,Callback,我正在尝试执行“保存后”条件回调 after_save :change_rel_status, :if => :relation_type_id == 1 def change_rel_status self.status = "Confirmed" self.save end 但是在保存为false:false类之后,我得到了错误消息undefined method 我不确定这是否是因为表单还具有其他未更新模型的其他属性 谢谢。我可以推荐一些简单的建议吗: before_sa

我正在尝试执行“保存后”条件回调

after_save :change_rel_status, :if => :relation_type_id == 1

def change_rel_status
  self.status = "Confirmed"
  self.save
end
但是在保存为false:false类之后,我得到了错误消息undefined method

我不确定这是否是因为表单还具有其他未更新模型的其他属性


谢谢。

我可以推荐一些简单的建议吗:

before_save :change_rel_status

def change_rel_status
  if params[:relationship][:relation_type_id] == 1
    self.status = "Confirmed"
  end
end

谢谢,但返回的错误消息堆栈级别太深。我想最好是把条件放在回调本身上,这样它就不会每次都回调了?哦,我的糟糕!保存后将触发更改\u rel\u状态,该状态将调用保存,保存将进入无限循环。不管怎样,它都必须检查条件是否满足,即关系类型是否为1,所以我看不出有什么不同。
before_save :change_rel_status

def change_rel_status
  if params[:relationship][:relation_type_id] == 1
    self.status = "Confirmed"
  end
end