如何在不更改控制器名称的情况下更改URL的显示方式? (导轨4)

时间:2015-10-21 10:52:44

标签: ruby-on-rails

如何在不更改控制器名称的情况下更改URL的显示方式? (Rails4)

这是我的static_pages_controller.rb

class StaticPagesController < ApplicationController
  def example
  end
end

这是我的routes.rb

get 'static_pages/example'

所以&#34; rake路线&#34;给出

static_pages_example GET    /static_pages/example(.:format)         static_pages#example

网址现为test.com/static_pages/example

如果不更改控制器名称,我怎么能将其更改为例如:test.com/pages/example?这就是&#39; static_pages&#39;总会重定向到例如&#39;页面&#39;

2 个答案:

答案 0 :(得分:2)

在routes.rb

中重写您的路线
get 'pages/example', to: 'static_pages#example'

答案 1 :(得分:1)

#config/routes.rb
resources :static_pages, path: "pages" do #-> url.com/pages/example
   get :example, on: :collection
end

Rails路由结构实际上非常通用。

以上是你应该做的事情(请注意path: switch)。

如果您想使用独立路线(如您的示例所示),您可以使用以下内容:

#config/routes.rb
scope module: 'pages' do
   get :example, to: "static_pages#example" #-> url.com/pages/example
end

...或

#config/routes.rb
get "pages/example", to: "static_pages#example" #url.com/pages/example