Rails 中未定义的方法“清理”

Pep*_*mat 3 ruby ruby-on-rails

我不知道导轨中的消毒是如何工作的。sanitize(params[:url])我在输入时出错了update_attribute

undefined method `sanitize'
Run Code Online (Sandbox Code Playgroud)

代码:

@sample.update_attribute(:url, sanitize(params[:url]))
Run Code Online (Sandbox Code Playgroud)

shi*_*vam 5

你应该使用:

@sample.update_attribute(:url, ActionController::Base.helpers.sanitize(params[:url]))
Run Code Online (Sandbox Code Playgroud)

或者,您可以通过在初始化程序中添加类似的内容来缩短此时间:

class String
  def sanitize
    ActionController::Base.helpers.sanitize(self)
  end
end
Run Code Online (Sandbox Code Playgroud)

进而:

params[:url].sanitize
Run Code Online (Sandbox Code Playgroud)

参考