Я не уверен, что точно понимаю, но позвольте мне попытаться понять это прямо. Каждый раз, когда вы создаете конкретную модель, вы хотите отправить сообщение XML в Amazon SQS? Если это так, то ...
сохраняйте свой контроллер так:
def create
@thing = Thing.new(params[:thing])
if @thing.save
#render view/partial/other
else
#display errors to user
end
Затем вы будете использовать Наблюдатель , чтобы позвонить в Amazon. Поместите своего наблюдателя прямо в каталог моделей:
/app/models/Thing.rb
/app/models/ThingObserver.rb
Ваш наблюдатель может выглядеть примерно так:
class ThingObserver < ActiveRecord::Observer
def after_create(thing)
AmazonSQSPlugin.send(thing.to_xml)
end
end
Код в наблюдателе будет запускаться после каждого создания. Если after_create в наблюдателе возвращает false , все создание откатывается, как будто этого никогда не было.
Возможно, вам придется отредактировать конфигурацию среды, чтобы вызвать запуск наблюдателя, в зависимости от того, как настроено ваше приложение.