0

過去2週間、私の魂を引き裂いた次の問題があります。

事前にレンダリングされた html-body を使用してレポートを作成したい:

def new
  @content_for_prerendering= Report.get_content
  @report = Report.new
  template = ERB.new(File.read("#{Rails.root}/app/views/report_template/default.html.erb"))
  @report.body = template.result(binding)
end

ERBのドキュメントに従います。しかし、テンプレートファイル DEFAULT.HTML.ERB 内では、次のようなローカル変数しか表示できないようです

 content_for_prerendering = Report.get_content

インスタンス変数ではありません。一部の HTML をレンダリングするためだけに、すべてのインスタンス変数をローカルにバインドすることは非常にまれです。何か不足していますか?

4

1 に答える 1

1

これを試して、インスタンス変数を正しくデリゲートするためのビューコンテキストバインディングを取得してください

@report.body = render_to_string :file => "#{Rails.root}/app/views/report_template/default.html.erb"
于 2012-05-29T15:26:54.633 に答える