gpt4 book ai didi

ruby-on-rails - Ruby on Rails - 搜索功能不在一列上返回结果

转载 作者:太空宇宙 更新时间:2023-11-03 16:47:08 24 4
gpt4 key购买 nike

我正在我的 Rails 应用程序中实现“where”搜索,它能够搜索除其中一个之外的所有数据库列。我已经对此进行了很长一段时间的调查,但无法弄清楚为什么会这样。

我目前完全在我的 Controller 中构建了搜索操作,如下所示:

def search_results
keywords = "%"+params[:search_keywords]+"%"
@found_prospects = Prospect.where("current_role LIKE ?", keywords)
end

在我看来,用户通过表单进行搜索:

<%= form_tag search_results_path, method: 'get' do %>
<%= text_field_tag :search_keywords %>
<%= submit_tag "Search" %>
<% end %>

然后使用上面的@found_prospects 变量生成一个表,如下所示。

<% @found_prospects.each do |prospect| %>
<tr>
<td><%= prospect.id %></td>
<td><%= prospect.source %></td>
<td><%= prospect.first_name %></td>
<td><%= prospect.last_name %></td>
<td><%= prospect.country %></td>
<td><%= prospect.city %></td>
<td><%= prospect.current_role %></td>
<td><%= prospect.expertise_description %></td>
</tr>
<% end %>

我的问题是:我的数据库中的 current_role 列在此输出上似乎没有返回任何结果,即使我可以看到它应该返回结果。

我已经使用上面的确切代码测试了其他列,并将“current_role”替换为其他术语,并且工作正常。使用 current_role 进行搜索时,不会产生任何错误 - 只是没有返回任何结果。

这是我的架构中的数据库列:

  create_table "prospects", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.string "country"
t.string "city"
t.string "current_role"
t.string "expertise_description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "source"
t.string "expertise_tags", default: [], array: true

我花了一段时间搜索 current_role 列的任何异常情况,但从表面上看不出任何问题。

任何关于潜在解决方案的想法都非常受欢迎 - 事实上,即使是关于我可以做的其他事情来解决问题的想法也会很有用。

我正在为我的数据库使用 Rails 4.2.1 和 Postgres。

编辑:

我还没有找到解决这个问题的方法,但一个功能性的解决方法是创建一个相同的数据库列,称为 current_position,并将对 current_role 的引用替换为 current_position。到目前为止这是可行的,当然这不是真正的解决方法。

最佳答案

许多评论者帮助解决了我的问题,但我将答案总结如下,以帮助遇到类似问题的任何人。

似乎与 current_role 字段发生冲突(我相信是由 Pundit 引起的),这导致我的 Prospect 表中的列被忽略。

这是通过在代码中明确说明表格来解决的,例如

Prospect.where("prospects.current_role ILIKE ?", keywords)

但是,为了避免将来发生此类冲突,我已将列重命名为 current_position。

关于ruby-on-rails - Ruby on Rails - 搜索功能不在一列上返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31013876/

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