我想在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但这不会追查和
我有这个任务模型:classTask'sort_order'end我有这个测试classTaskTest@root.id,:sort_order=>2)d2=create_task(:parent_id=>d1.id,:sort_order=>3)d3=create_task(:parent_id=>d2.id,:sort_order=>4)d4=create_task(:parent_id=>d1.id,:sort_order=>5)assert_equal5,Task.countd1.destroyassert_equal@root,Task.find(:first)assert_
我正在维护某人的代码库,他们有这样的东西:if@widget_part.destroyflash[:message]="Errordeletingwidgetpart"elseflash[:message]="Widgetpartdestroyedsuccessfully"enddestroy返回什么?这样测试可以吗?我问的原因是我尝试使用flash[:message]="Errordeletingwidgetpart:#{@widget_part.errors.inspect}"而且没有错误消息,所以我很困惑。它给出了类似的东西#,@messages={}>
实现效果:element官网提示设置tree-props为{children:‘children’,hasChildren:‘hasChildren’},data数据需要设置children和hasChildren属性,row-key也绑定了数据的唯一值变量id,但是树形结构的第三级就是出不来如图可以看到只有第二级,第三级并没有,于是查看了数据格式,和官方要求的也是一样的呢,但是第三层级就是不展示最后发现在el-table中,支持树类型的数据的显示。当row中包含children字段时,被视为树形数据。渲染树形数据时,必须要指定row-key。支持子节点数据异步加载。设置Table的lazy属
实现效果:element官网提示设置tree-props为{children:‘children’,hasChildren:‘hasChildren’},data数据需要设置children和hasChildren属性,row-key也绑定了数据的唯一值变量id,但是树形结构的第三级就是出不来如图可以看到只有第二级,第三级并没有,于是查看了数据格式,和官方要求的也是一样的呢,但是第三层级就是不展示最后发现在el-table中,支持树类型的数据的显示。当row中包含children字段时,被视为树形数据。渲染树形数据时,必须要指定row-key。支持子节点数据异步加载。设置Table的lazy属
我正在尝试解决equivalentbinarytrees在旅行中锻炼。这就是我所做的;packagemainimport"tour/tree"import"fmt"//Walkwalksthetreetsendingallvalues//fromthetreetothechannelch.funcWalk(t*tree.Tree,chchanint){ift.Left!=nil{Walk(t.Left,ch)}ch但是,如果树中没有更多元素,我不知道如何发出信号。我不能在Walk()上使用close(ch)因为它会在发送所有值之前关闭channel(因为递归。)谁能帮帮我在这里?