1

对于我的应用程序,我创建了项目和博客更新。可以为每个项目创建博客更新。我使用 redactor rails 作为富文本编辑器。它发布得很好。

但是在这里回答我的问题是,有人提到我应该对此进行消毒。所以我遵循了建议,在遵循了清理过程之后,我得到了以下错误。

问题:有人知道我需要做什么来解决这个问题,以便消毒工作吗?

NameError in BlogupdatesController#create
undefined local variable or method `orig_text' for #<BlogupdatesController:0x007f9186570700>
app/controllers/blogupdates_controller.rb:68:in `sanitize_redactor'
app/controllers/blogupdates_controller.rb:14:in `create'

blogupdates_controller.rb

class BlogupdatesController < ApplicationController
  # used for sanitization user's input
  REDACTOR_TAGS = %w(code span div label a br p b i del strike u img video audio
              iframe object embed param blockquote mark cite small ul ol li
              hr dl dt dd sup sub big pre code figure figcaption strong em
              table tr td th tbody thead tfoot h1 h2 h3 h4 h5 h6)
  REDACTOR_ATTRIBUTES = %w(href)

  before_filter :authenticate_user! 

  def create
    @project = Project.find(params[:project_id])

    params[:blogupdate][:content] = sanitize_redactor(params[:blogupdate][:content])

    @blogupdate = @project.blogupdates.create!(params[:blogupdate])

    if @blogupdate.save
      redirect_to blogs_project_path(@project), notice: "Blog entry created."
    end   
  end

  private

  def sanitize_redactor(orig_input)
    stripped = view_context.strip_tags(orig_text)
    if stripped.present? # this prevents from creating empty comments
      view_context.sanitize(orig_text, tags: REDACTOR_TAGS, attributes: REDACTOR_ATTRIBUTES)
    else
      nil
    end
  end

end 
4

1 回答 1

0

答案是将以下项目修复如下:

def sanitize_redactor(orig_input)
  stripped = view_context.strip_tags(orig_input)
  if stripped.present? # this prevents from creating empty comments
    view_context.sanitize(orig_input, tags: REDACTOR_TAGS, attributes: REDACTOR_ATTRIBUTES)
  else
    nil
  end
end
于 2013-05-27T07:22:02.737 回答