1

我正在尝试完成一项任务,但没有找到任何解决此问题的人。

我创建了一个奖项提名系统。

  1. 匿名用户提交提名
  2. 管理员用户从模板生成合并信​​函并编辑信函
  3. 字母文本保存到数据库中,以便以后生成 PDF

我读到您可以将 ERB 文本呈现给变量。这很好用,但是由于双重渲染错误,我被文本卡住了。

def generate_letter
@submission = Submission.find(params[:id])
@submission.letter_text = render (:text, :layout => false, :template => 'submissions/generate_letter') and return
@submission.save  
redirect_to @submission
end

是否有更好的方法为数据库生成此文本或重定向的解决方法?我试图避免将合并模板保留在代码中,而 ERB 似乎是处理它的好方法。

4

1 回答 1

0

你需要使用render_to_string. 这条线

@submission.letter_text = render (:text, :layout => false, :template => 'submissions/generate_letter') and return

应该

@submission.letter_text = render_to_string( template: 'submissions/generate_letter.text.erb', layout: false )
于 2012-10-01T23:52:27.817 回答