2

我已经设置了 Heroku 和 Railgun,以便能够从电子邮件中获取内容并存储它。

我已经知道,当电子邮件发送到 mailgun 时,它们会被转发到我的应用程序并自动创建我的消息模型的空实例,但是,电子邮件中的任何字段都没有被存储(尽管有匹配的架构(例如,来自:字符串主题:字符串等))。

我的问题是我无法弄清楚如何获取 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] 获取的“消息”参数,你应该用 parmas[:Subject]、params[:body-plain] 等单独的组件组合你的消息。

此外,由于 POST 来自不同的域,您需要为此控制器操作禁用 Rails 请求伪造保护:http: //api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html

于 2012-03-12T17:59:06.360 回答