Да, вы можете. Просто верните false
от вашего наблюдателя. Это отменит сохранение.
По крайней мере, если вы используете Rails 3.1, то есть. Если вы используете более старую версию Rails, вы должны определить метод обратного вызова, используя:
class MyModel < ActiveRecord::Base
before_save :my_callback
def my_callback
# do something
false
end
end