我正在编写一个处理来自文本区域的用户输入的模型.根据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.为什么?我该怎么做才能解决这个问题?
是时候在类似博客的Web应用程序上实现排序了.除了按创建日期浏览之外,我还希望用户能够按回复数量进行排序.
鉴于我有两个表blog_posts和回复,并且回复有一个名为blog_post_id的字段(blog_post的外键是回复),我该如何编写此查询?
"选择回复最多的30篇博文,按降序排列每篇博文的回复数量排序."
我也想对此进行分页.难以获得下一个30,接下来的30,等等吗?
我的感觉是这对SQL来说并不太难,我只是不知道该怎么做(还在学习).