我正在创建一个作为 Rack 应用程序的 gem,所以我假设我的应用程序将在 config.ru 文件中实例化。我希望某些路径与此 config.ru 文件相关。那么如何在应用程序初始化时获取和设置路径呢?
例如:
隐藏在我的宝石中:
class MyApp
def initialize
@base_path = get_the_base_path_here
end
def call(env)
html = render_view(@base_path + '/views/index.erb')
end
end
gem 的 config.ru 的用户:
require 'my_app'
run MyApp.new
...和他们的意见目录:
/views
index.erb
更新:
实现这一点的一种方法是将基本路径作为参数传递,但我想找到一种方法来实现这一点而不将其作为参数传递。
require 'my_app'
run MyApp.new(File.dirname(__FILE__))