私がやりたいことは、Haml ビューで (ruby ファイルで定義された) エイリアス メソッドを使用することです。
次のようなエイリアスメソッドを定義しました。
require 'sinatra'
require 'sinatra/base'
require 'data_mapper'
require 'haml'
helpers do
include Haml::Helpers
alias_method :h, :html_escape
end
class App < Sinatra::Base
use Rack::MethodOverride
# ...
end
次にh()
、次のように Haml ビューでメソッドを使用しました。
- @notes.each do |note|
%article{:class => note.complete? && "complete"}
%p
=h note.content
しかし、ページを開いたときにエラーが発生しました。
NoMethodError - 未定義のメソッド「h」 #:
...
Haml::Helpers.html_escape()
Hamlファイルで直接使用すると、問題はありません:
%p
= Haml::Helpers.html_escape note.content
エラーなしで haml ファイルでエイリアス メソッドを使用するにはどうすればよいですか?
この質問に対するアドバイスや修正をありがとう。