【发布时间】:2016-01-26 22:03:49
【问题描述】:
我有一个带有多个静态页面的控制器,理想情况下我希望使用通配符将它们全部路由。
是否可以做一些类似的事情?
get 'static/:action'
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 routes
我有一个带有多个静态页面的控制器,理想情况下我希望使用通配符将它们全部路由。
是否可以做一些类似的事情?
get 'static/:action'
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 routes
为什么不直接使用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
这样,您可以直接通过链接传递“页面”,并由 Rails 处理:
<%= link_to "About", static_path("page") %>
【讨论】:
您可能需要get 'static/:action', to: 'static#show' 之类的内容,然后在您的StaticController 显示操作中根据params[:action] 参数呈现正确的静态页面。
请参阅http://guides.rubyonrails.org/routing.html#defining-defaults 了解更多信息。
【讨论】:
:controller/:action 类型的东西?好久没试过了。
你可以路由类似的东西
get '*path', to: 'static#show'
【讨论】: