为一个充满非资源路由的控制器添加前缀rails

时间:2015-01-14 20:42:06

标签: ruby-on-rails ruby-on-rails-4 routing rails-routing

在rails 4.2我有一个控制器,我想用非资源丰富的路线填充

class TwilioController < ApplicationController
  def add_to_queue
  end

  def another_action
  end

end

然后我想要像这样访问这些行动

http://appdomain/twilio/add-to-queuehttp://appdomain.com/twilio/another-action

我意识到我可以在路线文件

中这样做
get 'twilio/add-to-queue', to: 'twilio#add_to_queue'
get 'twilio/another-action', to: 'twilio#another_action'

但是有没有办法将所有这些组合在一起,所以我不必在每条路线的开头明确添加twilio

2 个答案:

答案 0 :(得分:1)

好的,我已经找到了解决方案,看起来非常简洁。

scope path: 'twilio',  as: 't' do
   get 'add-to-queue', to: 'twilio#add_to_queue'
end

所以我现在有以下路线:

t_add_to_queue GET  /twilio/add-to-queue(.:format)     twilio#add_to_queue

答案 1 :(得分:1)

这是我的解决方案,适用于Rails 3.2。

scope :path => :twilio, :controller => :twilio, :as => :twilio do
  get :add_to_queue
  get :another_action
  get :yet_another_action
end

:path\twillio\...添加到网址
:controller将所有嵌套路由映射到TwillioController
:as使用twillio_....

附加网址助手