2011-06-22 8 views
2

私はHamlとSinatraを使ってサイトを作った。更新後(私はそれがその後だったと思います)、サイトはこれ以上動作しませんでした。ここでは、最小限の例です。SinatraとHaml:宝石更新後の不思議な挙動

/app.rb:

%p test 

、それ/view/index.haml

require 'rubygems' if RUBY_VERSION < '1.9' 
require 'sinatra' 
require 'haml' 

get "/" do 
    haml :index 
end 

/views/layout.haml

!!! 
%html{ :xmlns => "http://ww.w3.org/1999/xhtml", :lang => "en", "xml:lang" => "en" } 
    %head 
    %title test 
    %body 
    = yield 

次の例外をスローする:

/usr/lib/ruby/gems/1.9.1/gems/tilt-1.3.2/lib/tilt/template.rb in initialize 
    raise ArgumentError, "file or block required" if (@file || block).nil? 

/usr/lib/ruby/gems/1.9.1/gems/sinatra-1.3.0.a/lib/sinatra/base.rb in new 
    template.new(path, 1, options) 

/usr/lib/ruby/gems/1.9.1/gems/sinatra-1.3.0.a/lib/sinatra/base.rb in block in compile_template 
    template.new(path, 1, options) 

/usr/lib/ruby/gems/1.9.1/gems/tilt-1.3.2/lib/tilt.rb in fetch 
    @cache[key] ||= yield 

/usr/lib/ruby/gems/1.9.1/gems/sinatra-1.3.0.a/lib/sinatra/base.rb in compile_template 
    template_cache.fetch engine, data, options do 

/usr/lib/ruby/gems/1.9.1/gems/sinatra-1.3.0.a/lib/sinatra/base.rb in render 
    template = compile_template(engine, data, options, views) 

/usr/lib/ruby/gems/1.9.1/gems/sinatra-1.3.0.a/lib/sinatra/base.rb in haml 
    render :haml, template, options, locals 

私は実際にそれを修正する方法を見つけていません、誰かがそれをどのように解釈するのか知っていますか?

答えて

2

Sinatra 1.3.0.a(使用しているバージョン、リリース候補で完全リリースではないと仮定しています)と同じエラーが発生しますが、現在の最新バージョン(1.3.0.e )は、最新の安定版(1.2.6)にダウングレードするのと同様に、それを修正します。したがって、あなたの答えはアップグレードまたはダウングレードです。

あなたは使用して宝石の特定のバージョンをロードすることができます:あなたはrequire "sinatra"を呼び出す前に

gem "sinatra", "=1.2.6" 

を、またはあなたが(同じ構文を使用しています)Bundlerを使用しての中に見ることができます。

関連する問題