什么是组织这个代码的惯用手段“rails way”

时间:2013-06-01 09:16:29

标签: ruby-on-rails webhooks

在我们的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

是否有更清洁,更“铁路”来实现这一目标?

1 个答案:

答案 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