将模板渲染到数据库

时间:2012-10-01 21:10:47

标签: ruby-on-rails-3 redirect erb

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

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

  1. Anon用户提交提名
  2. 管理员用户从模板生成合并后的字母并编辑字母
  3. 信函文本保存到数据库以便以后生成PDF
  4. 我读到你可以将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似乎是处理它的好方法。

1 个答案:

答案 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 )