gpt4 book ai didi

ruby-on-rails - 搜索踢 rails 5

转载 作者:行者123 更新时间:2023-12-03 00:51:58 24 4
gpt4 key购买 nike

快一个。

我正在使用 Searchkick gem 在我的 Rails 应用程序中进行搜索。我注意到如果我尝试在 Post 模型中搜索一些文本,它工作正常。

一切都设置正确,但是说我想搜索帖子的作者。它的示例关系是 Post.user.name

当我搜索“用户名”时,我没有得到任何结果。我怀疑这与 User 模型中的数据而不是 Post 模型中的数据有关,但在我的 Post View 中,我可以将其视为字符串。

这是我想念的简单东西吗?我想添加

searchkick 继承:真

到我的 Post 模型并重新索引 Post 和 User 模型然后它会工作但没有任何改变。

有任何想法吗?谢谢。

最佳答案

Searchkick 由 ElasticSearch 提供支持。所有的搜索都发生在那里 - 而不是你的数据库。您需要以某种方式将要搜索的数据获取到 ElasticSearch 中。 Searchkick 通过使用 search_data 方法 ( https://github.com/ankane/searchkick#indexing ) 索引您的数据来提供此功能。因此,如果您的关联具有要搜索的字段,则可以按照类似于 Searchkick 的 Github 页面上的示例进行操作,并执行(针对您的情况):

class Post

belongs_to :author, class_name: 'User' # or whatever your association is

def search_data
{
title: title,
author_name: author.name
}
end
end

之后不要忘记重新索引,这样您就可以看到结果。
Post.reindex

并且不要忘记,如果您的关联数据发生更改,例如如果您的作者姓名从 Bob 变为 Robert,则数据不会自动同步。您需要手动调用 Post.reindex,或者在 Author 上设置 after_commit Hook ,当作者更改时调用重新索引 Post。有关这方面的更多信息,请参阅文档。

关于ruby-on-rails - 搜索踢 rails 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51975973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com