Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails model.save返回true,但不保存到db_Ruby On Rails_Rails Activerecord - Fatal编程技术网

Ruby on rails rails model.save返回true,但不保存到db

Ruby on rails rails model.save返回true,但不保存到db,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,我在模型中有一个函数,它在保存后执行一些操作 在该函数中,我有以下代码 progression = Progression.find_by_id(newprogression) if progression.participation_id.nil? progression.participation_id = participation.id progression.save else 我看到的是,进展没有得到更新。即使下面 如果我在保存之前检查progression.partic

我在模型中有一个函数,它在保存后执行一些操作

在该函数中,我有以下代码

progression = Progression.find_by_id(newprogression)
if progression.participation_id.nil?
  progression.participation_id = participation.id
  progression.save
else
我看到的是,进展没有得到更新。即使下面

  • 如果我在保存之前检查progression.participation\u id,则它已被更新
  • 如果在调试器中手动运行progression.save,则返回true
有什么想法吗?

试试看

progression = Progression.find_by_id(newprogression)
if progression.participation_id.nil?
  progression.update_attributes(
     :participation_id => participation.id
  )
else

这可能是缓存问题。从中,您可能希望通过传递true来重新加载缓存。如果您通过参与检查,在通过渐进建立链接后,您可能会遇到这种情况

假设进步属于参与

你能试试:progression.participation=参与,然后progression.save吗


另外,试试:participation.progressions我对Rails还是相当陌生,但每次我保存一些东西时,我都必须使用bang方法。您是否尝试过
progression.save

保存
和保存后的
在同一事务中运行。也许这是个问题。在提交
回调

后尝试使用
,好的,我遇到了同样的问题,我设法解决了。
问题在于关联名称。我有一个名为User的模型和一个名为Update的子模型,其中每个用户都有许多新的更新。因此,在user.rb中,我有一行:

has_one :update

在我删除这一行之后,一切又开始工作了。看起来这是rails保留的名称,在创建模型时不应使用它。也许你也有同样的问题。很遗憾,Rails没有指出这个问题。

不应该这样。也许验证失败了。但它们在手动保存时也会失败。所以不确定。不,那也不行。感谢您的思考感谢您的回复,该操作实际上针对的是与after_save所指的不同的模型,所以我不确定这是否适用?如果你使用关系(我假设你使用命名),我能想到的最后一件事就是使用
progression.participation=participation