也许有更好的方法来做到这一点。我希望能够动态加载一些路由。我计划在routes.rb
中使用静态路由,在custom_routes.rb
中使用自定义路由。然后在routes.rb
的底部,我会这样做:
CustomRoutes.create if defined?(CustomRoutes)
为了实现这一点,我必须仅在文件存在时才需要custom_routes.rb
,但是如何?
custom_routes.rb
class CustomRoutes
def self.create
MyApplication.routes.draw do
#...more routes here
end
end
end
答案 0 :(得分:2)
你可以这样做:
require 'custom_routes' if File.exists?('custom_routes.rb')
虽然您可能想要添加一些路径信息:
require 'custom_routes' if File.exists?(File.join(Rails.root, 'lib', 'custom_routes.rb'))
答案 1 :(得分:0)
像
这样的东西 require File.expand_path("../../config/custom_routes", __FILE__) if File..exists?("../../config/custom_routes.rb")
答案 2 :(得分:0)
您只需在LoadError
例外情况下进行救援:
begin
require "some/file"
rescue LoadError
end
这是最常规的方法。