我正试图完成一项任务,但没有找到任何解决此问题的人。
我创建了一个奖项提名系统。
我读到你可以将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似乎是处理它的好方法。
答案 0 :(得分: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 )