4

Mustache ビューで Sinatra ヘルパー メソッドを使用したいと考えています。

私はこれをします:

# 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::Views::Home:0x000000023ebd48 の未定義のローカル変数またはメソッド `helloworld'»

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

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

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

助けてくれて本当にありがとうございます!

4

1 に答える 1

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
于 2014-02-04T04:51:07.770 に答える