小编Sir*_*ins的帖子

使用FactoryGirl的未定义方法after_create

我正在尝试使用after_create回调在FactoryGirl中定义一个has_many关系,就像在/spec/factories/emails.rb中一样:

FactoryGirl.define do
    factory :email do
        after_create do |email|
            email.attachments << FactoryGirl.build(:attachment)
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

附件在单独的工厂/spec/factories/attachment.rb中定义:

FactoryGirl.define do
    factory :attachment do
        # Attach the file to paperclip
        file { fixture_file_upload(Rails.root.join('spec', 'support', 'myimage.png'), 'image/png') }
    end
end
Run Code Online (Sandbox Code Playgroud)

在我的规范中使用:附件工作非常好,所以我确信工厂不是问题,但是当我尝试创建一个:来自工厂的电子邮件时,我得到以下异常抛出:

Failure/Error: email = FactoryGirl.create(:email)
    NoMethodError:
        undefined method `after_create=' for #<Email:0x007ff0943eb8e0>
Run Code Online (Sandbox Code Playgroud)

我有点不知所措,似乎找不到任何其他人得到同样的错误.

rspec ruby-on-rails-3 factory-bot

11
推荐指数
1
解决办法
4465
查看次数

延迟作业排除队列

我有一个延迟的作业队列,其中包含运行速度特别慢的任务,我希望由它自己的一组专用工作人员处理这些任务,因此它会阻碍其余工作人员管道的风险较小。

RAILS_ENV=production script/delayed_job --queue=super_slow_stuff start

但是,我还想要一个用于所有其他队列的通用工作池,希望不必单独指定它们(因为它们的名称等也经常更改/添加)。类似于:

RAILS_ENV=production script/delayed_job --except-queue=super_slow_stuff start

我可以使用通配符*字符,但我想这会导致第二个工人也接过超级慢的工作吗?

对此有何建议?

ruby-on-rails delayed-job

5
推荐指数
1
解决办法
1090
查看次数