私は Haml 内で a を定義していclass
ます。このクラス内から Haml ヘルパーを使用できるようにしたいと考えています。例えば:
- class Whatever
- def self.write
- haml_concat "something"
- Whatever.write
理想的には、テンプレートにWhatever.write
出力"something"
しますが、単純に失敗しundefined method 'haml_concat' for Haml::Engine::Whatever:Class
ます。
完全なスタック トレース:
haml_test.haml:5:in `write': undefined method `haml_concat' for Haml::Engine::Whatever:Class (NoMethodError)
from haml_test.haml:8:in `block in render'
from /home/fraser/.rvm/gems/ruby-1.9.3-p125/gems/haml-3.1.4/lib/haml/engine.rb:191:in `eval'
from /home/fraser/.rvm/gems/ruby-1.9.3-p125/gems/haml-3.1.4/lib/haml/engine.rb:191:in `render'
from /home/fraser/.rvm/gems/ruby-1.9.3-p125/gems/haml-3.1.4/lib/haml/exec.rb:281:in `process_result'
from /home/fraser/.rvm/gems/ruby-1.9.3-p125/gems/haml-3.1.4/lib/haml/exec.rb:41:in `parse'
from /home/fraser/.rvm/gems/ruby-1.9.3-p125/gems/haml-3.1.4/lib/haml/exec.rb:21:in `parse!'
from /home/fraser/.rvm/gems/ruby-1.9.3-p125/gems/haml-3.1.4/bin/haml:9:in `<top (required)>'
from /home/fraser/.rvm/gems/ruby-1.9.3-p125/bin/haml:19:in `load'
from /home/fraser/.rvm/gems/ruby-1.9.3-p125/bin/haml:19:in `<main>'
これを正しく機能させるにはどうすればよいですか?extend
と の両方を使用してみましinclude
Haml::Helpers
たが、どちらも失敗します。何か案は?