Rails中的Active Record不保存更新

时间:2019-09-30 18:08:39

标签: ruby-on-rails ruby-on-rails-5

我有一个在活动记录内被继承的模块。

在该模块中 我正在调用一个函数,该函数从外部源获取ID,然后更新记录 我得到更新结果= true,但记录不会保存更新

# This is shared between multiple instances of classes 
module External
  def get_external_id 
     external_client_id =  ExternalClient::get_id(self)
     # it used to be 
     # self.update_attributes(external_client_id:external_client_id,  external_id_updated_date: Time.now)
     self.external_client_id = external_client_id
     self.external_id_updated_date = Time.now
     self.save
  end
end
class InfomrationForm < ActiveRecord::Base
  include External

end

当我尝试使用时   self.external_client_id 我得到空 当我应该从外部服务获得随机UUID时。 我已经检查了整个功能 该服务返回正确的ID,我可以对其进行记录 保存返回true,我可以记录该日志,但是当我尝试使用

问题是我的验证之一是无提示地失败了。

我必须评论所有验证,然后将它们逐一返回以找出哪一个失败。

1 个答案:

答案 0 :(得分:0)

即使原本应该抛出错误,验证也会以静默方式失败。

必须注释掉所有验证并逐一返回。

在验证中 if: Proc.new {}块 我认为问题与我在Proc.new内调用函数有关 然后该函数调用一个继承函数,该函数返回self.relation 一旦获得固定的保存效果就可以了