在我们的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
是否有更清洁,更“铁路”来实现这一目标?
答案 0 :(得分:0)
例如post '/webhook' => 'pusher#webhook'
pushers_controller.rb
class Pushers <ApplicationController
def webhook
....
end
end
的routes.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