1

Railsでは、次を使用してerbをhtmlに変換できます

erb(filename_as_string)

ただし、haml に相当するものは見つかりませんでした。そこで、次のようなヘルパーの作成を開始しました。

  def haml(file)
    lines = File.new(Rails.root.to_s + file).readlines.first
    engine = Haml::Engine.new(lines)
    engine.render
  end

ただし、これはインスタンス変数を私のhamlファイルに渡しません。

すでにこれを行う既存の関数はありますか? または、コントローラー メソッドで作成したすべてのインスタンス変数を渡すには、ヘルパーに何を追加すればよいですか?

4

1 に答える 1

1

http://haml.info/docs/yardoc/Haml/Engine.html#render-instance_methodを確認してください。ご覧のとおり、バインディングとして使用するためにデフォルトで渡される新しいオブジェクトを取得します。したがって、あなたの場合、おそらく

engine.render(self)

また、エンジンを作成するために、次のことができます

engine = Haml::Engine.new(File.read "#{Rails.root}#{file}")
于 2012-05-21T09:46:30.407 に答える