Sinatra:如何在Mustache视图中使用帮助器

时间:2012-05-02 10:40:24

标签: ruby sinatra mustache helpers

我想在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>

它不起作用,我有错误信息:

«未定义的局部变量或方法`helloworld'for App :: Views :: Home:0x000000023ebd48»

如何在Mustache视图中使用我的方法助手?

或者,如何直接在home.mustache中使用我的方法助手?像这样:

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

非常感谢你的帮助!

1 个答案:

答案 0 :(得分: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