【问题标题】:Access params of post request to my rails app访问我的 rails 应用程序的 post 请求参数
【发布时间】:2016-07-07 17:06:02
【问题描述】:

我正在使用 Sendgrid 从我的 rails 应用程序发送电子邮件。当我发送的电子邮件发生事件时(例如打开电子邮件时),Sendgrid 会将 HTTP POST 请求发送回我的应用程序。

Sendgrid 需要提供发送请求的 URL。我的是

my_domain.com/contact_processor

我的路线。

resources :contact_processor

我知道我可以定义一个特定的路线,但是我使用了资源并了解到发布请求正在寻找一个创建操作。

我的终端显示正在接收的参数。

parameters: {"_json"=>[{"ip"=>"66.249.82.220", 
"sg_event_id"=>"YWRREWM4ZmItMzY4YS00MjY1LWE3YTAtOTI0MzcwNTJhMTBj", 
"sg_message_id"=>"YZ8_123AQzOXoILstbNB4Q.filter0018p1las1.11190.577E6B3116.0", 
"useragent"=>"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via 
 ggpht.com GoogleImageProxy)", "event"=>"open", "foo_id"=>"19", 
"email"=>"test@mydomain.com", "timestamp"=>1467905735, 
"bar_id"=>"23"}], "contact_processor"=>{}}

我想访问 foo_id、bar_id 和事件值,以便使用它们来更新我的应用程序中对象的属性。

看似相当简单的任务却把我难住了。

任何有关如何访问这些内容的帮助以及对我在这里处理的内容的一些解释将不胜感激。

【问题讨论】:

  • 你有想过这个问题吗?

标签: ruby-on-rails


【解决方案1】:

您可以像往常一样在回调命中的控制器操作中访问它们。

1.9.3-p551 :024 > params['_json']
 => [{"ip"=>"66.249.82.220", "sg_event_id"=>"YWRREWM4ZmItMzY4YS00MjY1LWE3YTAtOTI0MzcwNTJhMTBj", "sg_message_id"=>"YZ8_123AQzOXoILstbNB4Q.filter0018p1las1.11190.577E6B3116.0", "useragent"=>"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via \n ggpht.com GoogleImageProxy)", "event"=>"open", "foo_id"=>"19", "email"=>"test@mydomain.com", "timestamp"=>1467905735, "bar_id"=>"23"}] 
1.9.3-p551 :025 > params['_json'].first['ip']
 => "66.249.82.220" 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多