Link 到搜索结果中的模型元素(Chewy,Rails)
Link to the Model element from search results (Chewy, Rails)
我已经实现了用户模型搜索(使用 Chewy gem 的 Elasticsearch)。
views/search/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 %>
routes.rb:
devise_for :users
resources :users, only: [:show], controller: :profiles
我需要的是为每个搜索结果行添加一个 link 给用户。 (如何将 Chewy 用户索引与用户页面连接起来)
更新:
我将搜索中的最后一段html.erb更改为:
<% @results.each do |r| %>
<%= link_to r.name, user_path(r) %>
<%= r.surname %>,
<%= r.email %>,
<% end %>
搜索结果现在可以点击了,但出现以下错误:
ProfilesController 中的 ActiveRecord::RecordNotFound#show
找不到 '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
查看 rake routes
,其中列出了所有路线及其名称
resources :name 正在生成所有默认路由(您刚刚在其中
指定制作 show_route)
<% @results.each do |r| %>
<%= link_to r.name, user_path(r.id) %>
<%= r.surname %>,
<%= r.email %>,
<% end %>
或者,也许更高级
<% @results.each do |r| %>
<%= link_to user_path(r.id) do %>
<%= r.name %>,
<%= r.surname %>,
<%= r.email %>
<% end %>
<% end %>
您将结果的 ID 放入 user_path() 帮助程序,这将生成 /user/12
我已经实现了用户模型搜索(使用 Chewy gem 的 Elasticsearch)。
views/search/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 %>
routes.rb:
devise_for :users
resources :users, only: [:show], controller: :profiles
我需要的是为每个搜索结果行添加一个 link 给用户。 (如何将 Chewy 用户索引与用户页面连接起来)
更新:
我将搜索中的最后一段html.erb更改为:
<% @results.each do |r| %>
<%= link_to r.name, user_path(r) %>
<%= r.surname %>,
<%= r.email %>,
<% end %>
搜索结果现在可以点击了,但出现以下错误:
ProfilesController 中的 ActiveRecord::RecordNotFound#show 找不到 '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
查看 rake routes
,其中列出了所有路线及其名称
resources :name 正在生成所有默认路由(您刚刚在其中 指定制作 show_route)
<% @results.each do |r| %>
<%= link_to r.name, user_path(r.id) %>
<%= r.surname %>,
<%= r.email %>,
<% end %>
或者,也许更高级
<% @results.each do |r| %>
<%= link_to user_path(r.id) do %>
<%= r.name %>,
<%= r.surname %>,
<%= r.email %>
<% end %>
<% end %>
您将结果的 ID 放入 user_path() 帮助程序,这将生成 /user/12