我已经实现了对用户模型的搜索(使用 Chewy gem 的 Elasticsearch)。
意见/搜索/search.html.erb:
<%= form_tag search_path, method: "get" do %>
<%= label_tag(:q, "Search by name/ surname/ email:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>
<% @results.each do |r| %>
<%= r.name %>
<%= r.surname %>,
<%= r.email %>,
<% end %>
路线.rb:
devise_for :users
resources :users, only: [:show], controller: :profiles
我需要的是为每个搜索结果行添加一个指向用户的链接。(如何将 Chewy 用户索引与用户页面连接起来)
更新:
我将 search.html.erb 中的最后一段更改为:
<% @results.each do |r| %>
<%= link_to r.name, user_path(r) %>
<%= r.surname %>,
<%= r.email %>,
<% end %>
搜索结果现在可以点击,但我收到以下错误:
ProfilesController#show 中的 ActiveRecord::RecordNotFound 找不到具有 'id'=#UsersIndex::User:0x007fa1050ebed0> 的用户
我的profiles_controller.rb:
class ProfilesController < ApplicationController
skip_before_action :authenticate_user!
def show
@user = User.find(params[:id]) //this line gets an error
end
end