0

在我们的 Rails 应用程序中,我有几个 webhook,由外部服务(即 PayPal IPN、Mailgun 和 Pusher)调用。目前,每种类型都有自己的控制器 + 必要的路由,例如:

post 'jobs/:job_id/comments/reply' => 'mailgun#incoming_email_comment'
post '/webhook' => 'pusher#webhook'
post '/paypal/ipn', :to => 'paypal#ipn', :as => :paypal_ipn

是否有更清洁、更“轨道方式”来实现这一目标?

4

1 回答 1

0

例如post '/webhook' => 'pusher#webhook'

pushers_controller.rb

class Pushers <ApplicationController
  def webhook
    ....
  end
end

路线.rb

resources :pushers do
  collection do
    post 'webhook'
  end
end

现在您可以像这样获取该路线的网址

webhook_pushers_path

或者

link_to 'some text', webhook_pushers_path 

如您所见,现在您不需要手动编写 url。Rails 使用您的控制器名称和您的操作自动创建它。您可以在那里阅读更多内容http://guides.rubyonrails.org/routing.html#adding-more-restful-actions

于 2013-06-01T13:28:16.227 回答