相关疑难解决方法(0)

在模型中使用帮助器:如何包含辅助依赖项?

我正在编写一个处理来自文本区域的用户输入的模型.根据http://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-input的建议,我在使用before_validate保存到数据库之前清理模型中的输入打回来.

我模型的相关部分如下所示:

include ActionView::Helpers::SanitizeHelper

class Post < ActiveRecord::Base {
  before_validation :clean_input

  ...

  protected

  def clean_input
    self.input = sanitize(self.input, :tags => %w(b i u))
  end
end
Run Code Online (Sandbox Code Playgroud)

不用说,这不起作用.当我尝试保存新帖子时出现以下错误.

undefined method `white_list_sanitizer' for #<Class:0xdeadbeef>
Run Code Online (Sandbox Code Playgroud)

显然,SanitizeHelper创建了一个HTML :: WhiteListSanitizer的实例,但是当我将它混合到我的模型中时,它找不到HTML :: WhiteListSanitizer.为什么?我该怎么做才能解决这个问题?

ruby activerecord model ruby-on-rails

96
推荐指数
6
解决办法
9万
查看次数

在保存到 rails 中的数据库之前去除脚本标签

对于我的所有模型应用程序:如果用户提交包含<script></script>标签的 text_field 或 text_area ,那么我希望 rails 在将用户的数据条目保存到数据库之前去除这些标签。

我已经看过以下大约 5 岁的帖子:

我还查看了以下文档,但我还没有弄清楚如何将它们应用于这种情况(在持久化到数据库之前删除脚本标记):

例子:

scaffolduser资源:

rails g scaffold user first_name last_name age:integer bio:text
Run Code Online (Sandbox Code Playgroud)

然后用户输入以下内容并提交:

用户输入

对于此user记录的每个属性,应将以下内容保存到数据库中:

  • 名字:Foo
  • 姓氏: Foo
  • 年龄:5
  • 生物:巴兹

谢谢!

ruby ruby-on-rails

3
推荐指数
1
解决办法
3489
查看次数

标签 统计

ruby ×2

ruby-on-rails ×2

activerecord ×1

model ×1