当用户点击"搜索"时,我想渲染表单的结果。按钮。
我认为我遗漏了模特的东西(我真的不知道我是否必须在我的用户模型上添加一些内容)或Html。
我有一个控制器:Searchscontroller
class SearchsController < ApplicationController
def index
if params[:city].present?
@searchs = User.near(params[:city], params[:distance] || 10, order: :distance)
else
@searchs = User.all
end
end
和search.html.erb中的表单
<%= form_tag search_path, method: :get do %>
<%= label :user, "Search User near : " %>
<%= text_field_tag :city, params[:city] %>
<%= label :distance, "Distance : " %>
<%= text_field_tag :distance, params[:distance] %>
<%= submit_tag "Search" %>
<% end %>
#NOT SURE WITH THAT PART, I think its not working, just the %else is displayed#
<div>
<% if @searchs.present? %>
<%= render @searchs %> # it might be @users instead ? #
<% else %>
<p>Oops no user around <%= params[:city] %>.</p>
<% end %>
</div>
我的用户已经找到了宝石地理编码器,那部分很好,我有Lat和Longitude(以及DB中的城市,它在控制台User.Near(&#39; City&#39;)中工作),但我只是想显示一个结果列表,当我点击表格时就是这样:
伦敦周边/距离10公里=&gt; &GT;搜索和LT;
结果
&gt; @user 1
&gt; @user 2
我希望有人能得到我的答案,非常感谢提前
Route.rb
Rails.application.routes.draw do
devise_for :users
resources :users, only: [:index, :show]
root "pages#home"
get "search" => "pages#search"
答案 0 :(得分:0)
所以基本上,我改变了我的搜索文件的文件夹&gt;
“searchs / search.html.erb”
以及Route.rb中的路线:get "search" => "searchs#search"
<%= form_tag search_path, method: :get do %>
<%= label :user, "Search User near : " %>
<%= text_field_tag :city, params[:city] %>
<%= label :distance, "Distance : " %>
<%= text_field_tag :distance, params[:distance] %>
<%= submit_tag "Search" %>
<% end %>
该类仍然相同,只是将def“ index ”重命名为“ search ”:
class SearchsController < ApplicationController
def search
if params[:city].present?
@searchs = User.near(params[:city], params[:distance] || 10)
else
@searchs = User.all
end
end
end
并且主要问题是表单末尾的div显示结果(先前代码正在寻找部分 _search.html.erb 而我没有创建它,所以我写了这个,直接显示表格的结果。
<div>
<table>
<tr>
<th>Nickname</th>
<th>City</th>
</tr>
<% @searchs.each do |search| %>
<tr>
<td><%= search.nickname %></td>
<td><%= search.city %></td>
</tr>
<% end %>
</table>
</div>
我仍然不知道如何在我点击“搜索”按钮时显示结果(它现在只是刷新表单),但我对Partial _form有了一个想法结果。如果有人为此获得解决方案,请将其添加到评论中;)