Rails 4.2禁用before_create种子

时间:2015-11-13 04:41:02

标签: ruby-on-rails

有没有办法在Rails中禁用种子文件的before_create?导入数据时,我不需要运行我的before_create方法。如果它有所作为我正在使用sprig gem进口。

1 个答案:

答案 0 :(得分:1)

您可以使用skip_callback,如下所示:

class Person < ActiveRecord::Base
  attr_accessor :skip_some_callbacks

  before_create :do_something
  after_create :do_something_else

  skip_callback :create, :before, :do_something, if: :skip_some_callbacks
  skip_callback :create, :after, :do_something_else, if: :skip_some_callbacks
end

如果您正在创建活动记录模型,那么您可以像这样替换您的创建:

person = Person.new(person_params)
person.skip_some_callbacks = true
person.save

如果你在种子上使用工厂女孩,可能看起来像下面这样:

100.times do
    FactoryGirl.create(:person, :skip_some_callbacks => "1")
end