【问题标题】:How to allow users to search only their posts using Elastic Search with Searchkick on Rails?如何允许用户使用 Elastic Search 和 Searchkick on Rails 仅搜索他们的帖子?
【发布时间】:2015-03-09 10:01:24
【问题描述】:

我希望用户能够仅搜索他们的帖子而不显示其他用户创建的帖子。我该怎么做呢?我正在使用 Elastic SearchSearchkick gem。

我试过了,但它仍然显示来自其他用户的帖子:

帖子控制器

@posts = current_user.posts.search params[:search]

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 elasticsearch searchkick


    【解决方案1】:

    根据searchkick,以下应该可以工作:

    Post.search params[:search], where: {user_id: current_user.id}
    

    【讨论】:

      【解决方案2】:

      也许你需要添加一个 where 子句来只搜索用户的帖子

      @posts = current_user.posts.where(user_id: current_user.id).search(params[:search])
      

      【讨论】:

      • 试过这个并重新启动 Rails 和弹性搜索服务器。它仍然无法在搜索中显示其他用户的帖子。
      • 我假设帖子模型有一个 user_id 字段,对吗?
      • 是的,我有显示所有用户帖子的页面,并且使用 current_user.posts 可以正常工作,但由于某种原因它在搜索时不起作用。
      • 您是否看到将搜索作为参数接收?
      • 你是这个意思吗?用户负载 SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]]
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多