访问我的rails应用程序

时间:2016-07-07 17:06:02

标签: ruby-on-rails

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

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

my_domain.com/contact_processor

我的路线。

resources :contact_processor

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

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

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和事件值,以便使用它们来更新我应用中对象的属性。

看起来相当简单的任务让我很难过。

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

1 个答案:

答案 0 :(得分: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"