1

クラス内でWebsiteroot を取得できsettings.rootます。クラスの外では、クラス オブジェクトへのハンドルを取得する方法がわかりません。

ルート ブロック内にインスタンス変数を挿入して、@root = settings.rootroot を HAML で使用できるようにすることができます。これは適切な方法ですか?

 class Website < Sinatra::Base
    configure do
      set :root, File.dirname(__FILE__)
    end
    get '/' do
      haml :index, :layout => :base
    end
 end
4

1 に答える 1

1

:locals次のように、ハッシュをhaml呼び出しのパラメーターとして使用するのが適切な方法だと思います。

class Website < Sinatra::Base
  configure do
    set :root, File.dirname(__FILE__)
  end
  get '/' do
    haml :index, :layout => :base, :locals => {:root_path => settings.root}
  end
end

root_pathビューのテンプレートでは、変数にアクセスできます。

于 2013-03-06T16:12:40.770 に答える