1

テンプレート ファイルを別のディレクトリに配置したい。(foo/、バー/)

シナトラを使ってどのように書きますか?

画像

この方法は間違っています。

4

1 に答える 1

8

ドキュメントから:

set :views, Proc.new { File.join(root, "templates") }

複数のディレクトリを使用する場合(これもドキュメントから):

set :views, ['views', 'templates']

helpers do
  def find_template(views, name, engine, &block)
    Array(views).each { |v| super(v, name, engine, &block) }
  end
end

ちなみに、文字列ではなく記号でテンプレートを参照する必要があります。したがって、完全なコードは次のようになります。

require 'rubygems'
require 'sinatra'
require 'haml'

set :views, ['foo', 'bar']

helpers do
  def find_template(views, name, engine, &block)
    Array(views).each { |v| super(v, name, engine, &block) }
  end
end

get '/' do
  haml :index, :layout => :bar
end

そしてあなたはこれらのファイルを持っています:

foo/index.haml
bar/bar.haml
于 2012-06-20T11:57:59.933 に答える