我想在destroy一个对象时跳过after_commit回调,而不是使用on语法明确指定方法列表.IE。像这样的东西:after_commit:foo,except:[:destroy] 最佳答案 我在RubyTips上找到了一种方法:after_commit:foo,if::persisted?或者对于更复杂的条件:after_commit,:foo,if:Proc.new{|record|record.persisted?&&[...]} 关于ruby-on-rails-跳过aft
在Rails2.2.2(ruby1.8.7-p72)中,我想在实际执行之前评估销毁对象的影响。IE。我希望能够生成将受:dependent=>:destroy影响的所有对象的列表(通过对象的关联)。我试图解决的真正问题是向用户提供将要删除的所有内容的列表,并让他们确认该操作。谁能推荐一个解决这个问题的好方法?我刚刚开始研究ActiveRecord::Associations,但还没有取得太大进展。更新:在我的特定情况下,我有各种级别的对象(A-->B-->C)。 最佳答案 这应该可以帮助您入门...显然您必须对其进行自定义,但这列出
我有一种情况,我想在另一个对象被销毁后更新父对象的依赖项。这是类层次结构的示例:classParent:destroyhas_many:conditions,:dependent=>:destroy....endclassInfofalse)end....end问题是,当父级被销毁时,它会销毁条件,然后触发after_destroy回调并在它已经被销毁后保存信息对象。所以在父级被销毁后信息仍然存在。如果我不绕过验证,保存将默默地失败,这是我不希望的。并使用保存!引发异常。Condition上的回调必须是after_destroy,否则Info上的重新计算方法将无法正确表示关系状态来计算
有没有一种方法可以销毁Rails模型,而无需为关联中的dependent::destroy调用回调。例子:classAdministration所以当我打电话Administration.find(id).destroy我只想删除记录和附件,但不要调用删除rosters的回调has_many:rosters,dependent::destroy--PS我不想禁用has_many:rosters,dependent::destroy。我只需要暂时禁用回调。 最佳答案 您可以保持关联不变,并通过以下方式之一跳过回调:1.使用delete
我想运行Alarm.destroy_all,但是,每个警报都关联到许多AlarmEvent,每个AlarmEvent都关联到许多AlarmEvent::Measurement,两个关联都标记为:dependent=>destroy因此,当我调用Alarm.destroyall时,此调用需要很长时间才能运行。有什么办法可以让它更快吗?怎么办?直到现在我已经尝试过Alarm.joins(:alarm_events).destroy_all并且它仍然很慢。 最佳答案 destroy_all更快的替代方法是delete_all但这不会追查和
我正在维护某人的代码库,他们有这样的东西:if@widget_part.destroyflash[:message]="Errordeletingwidgetpart"elseflash[:message]="Widgetpartdestroyedsuccessfully"enddestroy返回什么?这样测试可以吗?我问的原因是我尝试使用flash[:message]="Errordeletingwidgetpart:#{@widget_part.errors.inspect}"而且没有错误消息,所以我很困惑。它给出了类似的东西#,@messages={}>
我有一个内置在node.js中的REST服务,带有Restify和Mongoose,还有一个mongoDB,其中包含大约30.000个常规大小的文档。我的Node服务通过pmx和pm2运行。昨天,突然,Node开始用消息“MongoError:拓扑被破坏”来解决错误,仅此而已。我不知道这是什么意思,什么可能触发了这个。谷歌搜索时也找不到太多东西。所以我想我会在这里问。今天重启Node服务后,错误停止了。我也有其中一个在生产中运行,这让我害怕,这可能在任何给定时间发生在其中运行的设置的一个非常关键的部分......我正在使用上述软件包的以下版本:Mongoose:4.0.3修复:3.0.
我有一个内置在node.js中的REST服务,带有Restify和Mongoose,还有一个mongoDB,其中包含大约30.000个常规大小的文档。我的Node服务通过pmx和pm2运行。昨天,突然,Node开始用消息“MongoError:拓扑被破坏”来解决错误,仅此而已。我不知道这是什么意思,什么可能触发了这个。谷歌搜索时也找不到太多东西。所以我想我会在这里问。今天重启Node服务后,错误停止了。我也有其中一个在生产中运行,这让我害怕,这可能在任何给定时间发生在其中运行的设置的一个非常关键的部分......我正在使用上述软件包的以下版本:Mongoose:4.0.3修复:3.0.
C++stackallocatedvariablenotdestructed(/destroyed?)我对C语言很陌生,但我认为我说得对,在堆栈上声明的对象应该在超出范围时自动销毁/销毁?在我目前正在使用的迷你项目中,情况并非如此。voidMainWindow::clickTest(){ FunkyNumbernum=4; FunkyNumbernum2=6; num+=num2; std::coutnumstd::endl;//Thisworksokay! //Shouldbedestroyedhere!}我的析构函数应该这样做:virtualFunkyNumber::~Funky
C++stackallocatedvariablenotdestructed(/destroyed?)我对C语言很陌生,但我认为我说得对,在堆栈上声明的对象应该在超出范围时自动销毁/销毁?在我目前正在使用的迷你项目中,情况并非如此。voidMainWindow::clickTest(){ FunkyNumbernum=4; FunkyNumbernum2=6; num+=num2; std::coutnumstd::endl;//Thisworksokay! //Shouldbedestroyedhere!}我的析构函数应该这样做:virtualFunkyNumber::~Funky