1

いくつかの変数を定義しました:

class App < Sinatra::Base

  set :public_folder, relative('public')
  set :views, relative('views')

私は両方のモデルからそれらにアクセスしようとしました

options.public_folder

settings.public_folder

どちらもモデルの範囲内には存在しないようです。どうすればそれらにアクセスできますか?

4

1 に答える 1

1

実例は次のとおりです。

class App < Sinatra::Base
…
  configure do
    set :public_folder, File.expand_path(File.join(File.dirname(__FILE__), "public"))
    set :root, File.expand_path(File.dirname(__FILE__))
  end
…
end

次に、ビューでこの設定にアクセスする方法の例を示します。私の場合、これはHAMLです。

%p= settings.public_folder
%p= settings.root

そしてページは示します:

/Users/sashaegorov/Development/ruby/rvs/public
/Users/sashaegorov/Development/ruby/rvs

これは私のシステムの正しいパスです。

注: File.expand_path()非常にうまく機能します。ファイルまたはフォルダーへの実際のパスを取得するのに常に役立ちます。__FILE__もここで役立ちます

于 2012-11-18T13:10:32.497 に答える