私は 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
アップデート:
これを実現する 1 つの方法は、ベース パスを引数として渡すことですが、引数として渡さずにこれを実現する方法を見つけたいと思います。
require 'my_app'
run MyApp.new(File.dirname(__FILE__))