我应该在哪里放置MyApplication :: Application.reload_routes

时间:2014-07-14 08:58:25

标签: ruby-on-rails-4 routes

在Rails 4应用程序中,我需要在应用程序使用它之前为每个请求重新加载路由(routes.rb)。我应该在哪里放MyApplication::Application.reload_routes!
我曾尝试将其放入config/applicaion.rb,config/environments.rb,但它无效 我也尝试将它放在ApplicationController的before_filter中,它也失败了。 RoR api简要介绍了如何使用它 因此,非常感谢任何有关此的协助/指导

1 个答案:

答案 0 :(得分:1)

Seriuosly我永远不会那样做。这是对Rails内部的大规模干预。只需将一条动态路由配置为单个控制器即可。然后加载一些命令(服务) 根据来自db的url的动态部分,反序列化,实例化和传递 当前控制器作为对此动态服务构造函数的引用。

您正在加载的动态服务应该根据以下重构技术实现:

Replace Method with Method Object

另一个选项是加载lambda / Proc,因为它会在实例化后自动拥有控制器作用域