2

メールからコンテンツを取得して保存できるように、Heroku と Railgun をセットアップしました。

メールがmailgunに送信されると、アプリに転送され、メッセージモデルの空のインスタンスが自動的に作成されるようになりましたが、メールのフィールドは保存されていません(一致したにもかかわらずスキーマ (例: from:string subject:string など))。

私の問題は、HTTP POST 要求の内容を取得して処理し、各メッセージが対応する情報と共に保存されるようにする方法がわからないことです。(herokuログを介して)herokuに入っていることがわかりますが、保存できません。最初に次のフィールドを保存しようとしています:

  • から
  • 主題
  • 付属品

現時点では、messages_controller.rb は次のようになっています。

    def create
      @message = Message.new(params[:message])

      respond_to do |format|
        if @message.save
          format.html { redirect_to @message, notice: 'Message was successfully created.' }
          format.json { render json: @message, status: :created, location: @message }
        else
          format.html { render action: "new" }
          format.json { render json: @message.errors, status: :unprocessable_entity }
        end
      end
    end

助言がありますか?

それは私の側の基本的な理解の問題だと確信していますが、ここで何をしようとしているのかを本当に説明しているものを見つけることができないようです.

4

1 に答える 1

4

ここのメールガンナー:

Railsオブジェクトは投稿しません。次の表で説明されているように、単純なHTTPパラメーターを投稿します。http: //documentation.mailgun.net/user_manual.html#parsed-messages-parameters

params [:message]で取得しようとしている「message」パラメータはありません。parmas[:Subject]、params [:body-plain]などの個々のコンポーネントを使用してメッセージをアセンブルする必要があります。

また、POSTは別のドメインからのものであるため、このコントローラーアクションのRailsリクエストフォージェリ保護を無効にする必要があります:http: //api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html

于 2012-03-12T17:59:06.360 に答える