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