小编Bri*_*ick的帖子

Rails after_save回调被多次调用

我试图通过mixin注入一个after_save回调,但是我的rspec测试告诉我在调用该create方法时调用了两次回调.为什么方法被调用两次?

以下rspec测试失败

it 'should call callback' do
  Product.any_instance.should_receive(:update_linkable_attachments).once
  Product.create(:name=>'abc')
end
Run Code Online (Sandbox Code Playgroud)

失败消息是:

Failure/Error: Unable to find matching line from backtrace
   (#<Product:0xb7db738>).update_linkable_attachments(any args)
       expected: 1 time
       received: 2 times
Run Code Online (Sandbox Code Playgroud)

这是代码

module MainModuleSupport
  def self.included(base)
    base.instance_eval("after_save :update_linkable_attachments")
  end 

  def update_linkable_attachments
    LinkedAttachment.delay.create_from_attachment self
  end
end

class Product < ActiveRecord::Base
  include MainModuleSupport
  ...

end
Run Code Online (Sandbox Code Playgroud)

Product类有其他代码,但没有任何其他回调.

activerecord ruby-on-rails ruby-on-rails-3

10
推荐指数
1
解决办法
3730
查看次数

如何在JQuery中查找所有对话框

我正在尝试将事件绑定到使用JQuery UI Dialog函数在页面上创建的所有对话框(无论它们是否已显示).我似乎无法找出能让我在那里的选择器.我都试过.ui-dialog,并.ui-dialog-content没有成功.

由于我正在尝试创建泛型方法,因此我不知道可能已创建的对话框的ID.

我正在使用以下代码进行测试.如果我指定对话框的id(#mydialog),它可以工作,但在生产中,我不会知道这些.

$("div.ui-dialog").bind("dialogclose", function(event, ui) {
  window.alert("close fired");
}
Run Code Online (Sandbox Code Playgroud)

jquery-ui-dialog

6
推荐指数
1
解决办法
6183
查看次数

在所有延迟工作之前挂钩

是否可以在ALL delayed_job任务之前运行方法?

基本上,我们正在尝试确保运行delayed_job的每个服务器都有我们代码的最新实例,因此我们希望运行一个方法,在每个作业运行之前对其进行检查.

(我们已经有了"check"方法并在其他地方使用它.问题只是关于如何从delayed_job调用它.)

ruby ruby-on-rails delayed-job

5
推荐指数
2
解决办法
1993
查看次数