アプリでテキストを使用していますが、機能が爆発しています。次のコード:
Background:
Given the following "project" records:
| name |
| Project 1 |
| Project 2 |
And I am on "the projects page"
Scenario: Find projects by content
When I search for "Project 1"
Then I should see the project called "Project 1" in the project list
次のメッセージが表示されます。
When I search for "Project 1" # features/step_definitions/search_steps.rb:11
PG::Error: ERROR: function similarity(character varying, unknown) does not exist
LINE 1: SELECT "projects".*, similarity("projects"."name", 'Project\...
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
: SELECT "projects".*, similarity("projects"."name", 'Project\ 1') AS "rank79552331411843676" FROM "projects" WHERE (("projects"."name" % 'Project\ 1')) ORDER BY "rank79552331411843676" DESC (ActionView::Template::Error)
あいまい検索を使用しているため、Postgres に Trigram モジュールをインストールしましたが、開発中はすべて正常に動作します。このエラー メッセージの意味がよくわかりません。これが私のコードのもう少しです:
# search_steps.rb
When(/^I search for "(.*?)"$/) do |query|
fill_in 'query', with: query
click_button 'Search'
end
# GET /projects
def index
@projects = Project.search(params[:query])
end
# project.rb
def self.search(query)
return all unless query.present?
fuzzy_search(query)
end
誰かがこれに遭遇して修正しましたか?