2012-05-02 5 views
4

MustacheビューでSinatraヘルパーメソッドを使用したいと思います。それは動作しませんSinatra:Mustacheビューでヘルパーを使用する方法

# in app.rb: 
... 
helpers do 
    def helloworld 
    "helloworld!" 
    end 
end 
get '/' 
    mustache :home 
end 
... 

# in views/home 
class App < Sinatra::Base 
    module Views 
    class Home < Mustache 
     def hello 
     helloworld 
     end 
    end 
    end 
end 

# in home.mustache 
<p>{{hello}}</p> 

、私はエラーメッセージがあります:

«のApp ::ビューの未定義のローカル変数やメソッド `HelloWorldのを」::ホーム:0x000000023ebd48»

私はこれを行います

私のメソッドヘルパーをMustacheビューで使用するにはどうすればよいですか?

または、私のメソッドヘルパーをhome.mustacheから直接使用するにはどうすればよいですか?このように:

# in home.mustache 
<p>{{helloworld}}</p> 

ご協力いただきありがとうございます。

答えて

1

あなたはモジュールで何かを行うことができるはず:

# app_helpers.rb 
module AppHelpers 
    def helloworld 
    "helloworld!" 
    end 
end 

# app.rb 
helpers AppHelpers 

get '/' 
    mustache :home 
end 

# views/home.rb 
class App < Sinatra::Base 
    module Views 
    class Home < Mustache 
     include AppHelpers 

     def hello 
     helloworld 
    end 
    end 
end 
関連する問題