问题标签 [after-save]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
592 浏览

ruby-on-rails-3 - 具有虚拟属性的 after_save 回调 Rails 3

我不知道这是否可能,所以我想我会问。

这可以在 Rails 3 中完成吗?

0 投票
2 回答
372 浏览

ruby-on-rails - 确定在 Rails after_save 回调中从数组中删除了哪些 id?

我试图弄清楚如何在保存后回调中判断数组中发生了什么变化。这是我正在使用的代码示例:

我正在使用 after_save 回调删除子用户,因为我无法通过 user_maps 获得依赖的销毁功能。有没有人对如何做到这一点有任何想法?

谢谢!

0 投票
1 回答
241 浏览

ruby-on-rails - Rails - 试图在儿童协会中翻转活跃标志

我有两个模型,论坛和主题,论坛有很多主题。每个都有一个活跃的布尔值。当我在论坛上翻转活动标志时,我希望其主题也都翻转其标志。我的想法是在 before_save def before_save 中执行此操作,除非 self.active?self.topics.each{|topic| topic.close} 结束

在Topic中,我定义了close方法:def close self.active = false self.save end

我在这里采取了错误的方法(我应该在其他地方做吗,比如在控制器中?)我没有收到任何错误,但是当我将标志设置为 false 时没有任何反应(我不一定要翻转所有将论坛设置为活动时要活动的主题,所以我只需要这样做)。

谢谢

0 投票
3 回答
7181 浏览

ruby-on-rails - rspec 测试 has_many :through 和 after_save

has_many :through与连接表有(我认为)相对简单的关系:

还有这些 rspec 测试(我知道这些不一定是好的测试,这些只是为了说明正在发生的事情):

这工作正常,直到我将一个添加after_saveThing引用其followers. 也就是说,如果我这样做

然后第二个测试失败 - 即关系仍然添加到连接表,但@thing.followers返回一个空数组。此外,回调的那部分永远不会被调用(好像followers在模型中是空的)。如果我puts "HI"在该行之前的回调中添加一个followers.each,则“HI”会显示在标准输出上,所以我知道正在调用回调。如果我注释掉该followers.each行,那么测试将再次通过。

如果我通过控制台完成这一切,它工作正常。即,我可以

为什么这在 rspec 中失败了?我做错了什么可怕的事情吗?

更新

如果我手动定义Thing#followers为,一切正常

这使我相信也许我错误地定义了我has_many :through:source

更新

我创建了一个最小的示例项目并将其放在 github 上:https ://github.com/dantswain/RspecHasMany

另一个更新

非常感谢@PeterNixey 和@kikuchiyo 在下面提出的建议。最终的答案原来是两个答案的组合,我希望我可以在它们之间分配功劳。我已经用我认为最干净的解决方案更新了 github 项目并推送了更改:https ://github.com/dantswain/RspecHasMany

如果有人能给我一个关于这里发生的事情的真正可靠的解释,我仍然会喜欢它。对我来说最麻烦的是为什么在最初的问题陈述中,如果我注释掉对followers.

0 投票
2 回答
929 浏览

ruby-on-rails - Rails 3:在 after_save 上取消插入

我有一个模型,当插入记录时,需要调用 Web 服务。

如果 web 服务失败(超时或其他失败),它们在数据库中的保存也应该被恢复。

我使用 after_save 回调并尝试在发生此类错误时引发 ActiveRecord::Rollback。

尽管它在 object.save 上返回 false,但它不会回滚事务。这样做的正确方法是什么?

我怎样才能确保不会创建记录?

0 投票
2 回答
191 浏览

ruby-on-rails - Rails 3 - 在model.save之后修改其他模型的属性

不幸的是,我可能仍然是一个 Rails 初学者,所以,即使我考虑并尝试了不同的方法,我也没有得到我想要的工作,现在不得不再次寻求帮助。

我有一个 REST 评论投票机制,每条评论都会竖起大拇指。这很好用,每个都用 counter_cache 处理来计数。现在,根据这些赞成和反对票,我想计算每个评论的正负值,thumbs_up-votes - thumbs_down-votes。虽然我不确定这是否是处理该问题的最有效方法,但我计划将正负值作为评论模型的额外整数属性(而竖起大拇指和向下竖起大拇指是自己的模型)。所以,我基本上想要的是,当保存 thumbs_up 时,评论的加减属性自动应该是+= 1,并且分别为 thumbs_down.save a -= 1

如何从 thumbs_up 控制器中发出这样的操作?我需要修改我的 form_for 还是我的方法完全错误?

是否有一个 after_save 回调来处理不同模型的属性?

0 投票
3 回答
2594 浏览

ruby-on-rails - 在 after_save_filter 中生成 CSV 时未定义的方法“column_names”

我想在用户创建他的帐户后生成 CSV 文件,所以我after_save在模型中创建了过滤器User,但我遇到了错误。

这是我的代码:

但是当创建用户时我得到错误:

为什么我得到这个?我正在使用这个 railscast - http://railscasts.com/episodes/362-exporting-csv-and-excel

0 投票
1 回答
795 浏览

ruby-on-rails - 如何设置保存 CSV 文件的路径?

我正在使用 after_save_filer 将记录保存到 CSV 中。我没有收到任何错误,也找不到文件,生成了什么(如果存在)。

这是我正在使用的代码:

运行保存过滤器后如何检查?我如何设置路径?

0 投票
1 回答
708 浏览

ruby-on-rails - 从 after_post_process 或 after_save 获取 id,或者 bin

我已经为此奋斗了一段时间,您的帮助肯定会非常感激。

我已经建立了一种签署 pdf 文档的方法,您可以在此处找到,现在离签署我的文件只有一步之遥。

我想异步执行此操作,但首先我需要了解如何同步执行此操作。

所以我尝试了两种不同的方法,在 post_process 之后:

我希望能够将文件发送到类似于/original/1/myfilename.pdf1 将是我的receipt_id 的路径(并且在 post_process 之后为空)。

然后我用 after_save 尝试了一种不同的方法,但是receipt_file.to_file(:original) 不是一个有效的调用......

如何获取文件并将其再次上传回 S3?

编辑

经过一些研究,我阅读了如何从亚马逊加载文件,现在的问题是我的文件内容是空的......我做错了什么?

0 投票
1 回答
438 浏览

ruby-on-rails-3 - Rails 3:过滤后模型导致无限循环

我有以下过滤后:

用户模型:

我进行了一些调试以将结果输出到控制台,并且代码正在访问该check_for_custom_district方法并由于某种原因导致无限循环。不知道如何阻止这种情况......有什么想法吗?