1

私は Amazon SQS と ruby​​ on rails の初心者です。そして、いくつかの XML メッセージを SQS に送信する必要があるプロジェクトに取り組んでいます。それ、どうやったら出来るの?

今、私は.saveの後にこれをコントローラに持っています

 def create

    @thing = Thing.new(params[:thing])

    respond_to do |format|

      if @thing.save
        message = @thing.to_xml

そしてモデルで

inputqueue.send_message(message) 

これは、XMLファイルをSQSに送信できる方法ですか??

4

2 に答える 2

1

正確に理解しているかどうかはわかりませんが、これをまっすぐにしてみてください。特定のモデルを作成するたびに、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を返す場合、作成全体がロールバックされます。

ただし、アプリケーションが現在どのように設定されているかによっては、オブザーバーを起動するために環境設定を編集する必要がある場合があります。

于 2009-11-03T02:57:56.783 に答える
0

RightAws :: SqsGen2.queue(queue_name、message)は、メッセージを送信するための正しい方法です。

于 2009-11-12T19:52:42.960 に答える