LIKE 语句但跳过当前 post
LIKE statement but skips current post
我正在尝试使用 LIKE 条件查找类似的 posts。
这是我的代码:
@post = Post.find(params[:id])
@post_gsub = Post.find(params[:id]).name.gsub(/something|something else|something else again/, '')
@related_posts = Post.where("name LIKE '%#{@post_gsub}%'")
但是当我将其拉入 Rails 视图时,当前总是显示一个匹配项,即用户当前所在的博客 post。如何跳过当前博客 post,以便“@related_posts”仅显示独特的推荐,而不显示用户当前所在的 post?
您可以尝试链接 where.not
方法 考虑到您正在使用 Rails 3,您可以使用部分原始 SQL:
Post.where('name LIKE ? AND id != ?', "%#{@post_gsub}%", @post.id)
这将使您的查询添加一个 !=
运算符来获取除 id 等于 @post.id.
之外的每个 post
为了rails3次尝试
Post.where('name LIKE ? AND id != ?', "%#{@post_gsub}%", @post.id)
我正在尝试使用 LIKE 条件查找类似的 posts。
这是我的代码:
@post = Post.find(params[:id])
@post_gsub = Post.find(params[:id]).name.gsub(/something|something else|something else again/, '')
@related_posts = Post.where("name LIKE '%#{@post_gsub}%'")
但是当我将其拉入 Rails 视图时,当前总是显示一个匹配项,即用户当前所在的博客 post。如何跳过当前博客 post,以便“@related_posts”仅显示独特的推荐,而不显示用户当前所在的 post?
您可以尝试链接 考虑到您正在使用 Rails 3,您可以使用部分原始 SQL: where.not
方法
Post.where('name LIKE ? AND id != ?', "%#{@post_gsub}%", @post.id)
这将使您的查询添加一个 !=
运算符来获取除 id 等于 @post.id.
为了rails3次尝试
Post.where('name LIKE ? AND id != ?', "%#{@post_gsub}%", @post.id)