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)