Rails 没有路由的路径助手

Rails path helpers without routes

我们正在从我们的 rails 应用程序中取出几个页面以单独提供(它们是一些静态页面,其中一些内容通过 cms 进行管理)。网址将保持不变。我们自己在服务器前面的路由系统将决定哪个请求应该转到 rails 应用程序,哪个请求应该转到静态部分。

我的问题是关于我们在整个 rails 应用程序中使用相当多的路径助手,例如生成 mahwebsite.com/aboutlink_to about_path。据我所知,我可以保留它们,它们仍会生成正确的网址。我唯一担心的是,为了让它们工作,我必须将路由保留在路由文件中,该路由必须连接到虚拟控制器方法。似乎有很多冗余代码只是为了愚弄 rails 创建路径助手。

或者,我可以硬编码指向静态页面的链接。但在我开始替换大量代码之前,我想知道是否有一种干净的 Railsy 方法来保留路径助手,而不必路由到冗余控制器。

谢谢。

怎么样

resources :custom_pages, only: [:your_options] do
  get :view/:page_id_or_whatever_for_identify
end

并用控制器做以下内容?

为什么不创建自己的辅助方法呢?例如

# application_controller.rb
def about_path
  "mahwebsite.com/about"
end
helper_method :about_path
alias_method :about_url, :about_path

这将覆盖任何 Rails 辅助方法并完全按照您的要求进行:)

希望这对您有所帮助 - 如果您有任何问题或意见,请告诉我。