Rails 4匹配一个控制器的所有路由

时间:2016-01-26 22:03:50

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

我有一个带有许多静态页面的控制器,我最好用通配符来路由它们。

是否有可能做喜欢以下的事情?

get 'static/:action'

3 个答案:

答案 0 :(得分:2)

您可能需要get 'static/:action', to: 'static#show'之类的内容,然后在StaticController show动作中根据params[:action]参数呈现正确的静态页面。

有关详情,请参阅http://guides.rubyonrails.org/routing.html#defining-defaults

答案 1 :(得分:2)

为什么不使用show操作:

#config/routes.rb
resources :static, param: :page, only: :show #-> url.com/static/:page

#app/controllers/static_controller.rb
class StaticController < ApplicationController
   def show
      render "#{params[:page]}"
   end
end

通过这种方式,您可以传递&#34;页面&#34;直接通过链接并让它全部由Rails处理:

 <%= link_to "About", static_path("page") %>

答案 2 :(得分:1)

您可以路由类似

的内容
get '*path', to: 'static#show'