Обновлено:
@ Решение Викранта Чаудхари выглядит лучше:
#Rails >= v3.1 only
@person.update_column(:some_attribute, 'value')
#Rails >= v4.0 only
@person.update_columns(attributes)
Мой оригинальный ответ:
см. Эту ссылку: Как пропустить обратные вызовы ActiveRecord?
в Rails3,
предположим, у нас есть определение класса:
class User < ActiveRecord::Base
after_save :generate_nick_name
end
Подход 1:
User.send(:create_without_callbacks)
User.send(:update_without_callbacks)
Approach2:
Если вы хотите пропустить их в своих файлах rspec или что-то еще, попробуйте это:
User.skip_callback(:save, :after, :generate_nick_name)
User.create!()
ПРИМЕЧАНИЕ: как только это будет сделано, если вы не находитесь в среде rspec, вы должны сбросить обратные вызовы:
User.set_callback(:save, :after, :generate_nick_name)
у меня отлично работает на рельсах 3.0.5