渲染Form rails / gem geocoder的结果

时间:2016-08-17 13:14:50

标签: ruby-on-rails ruby forms ruby-on-rails-4

当用户点击"搜索"时,我想渲染表单的结果。按钮。


我认为我遗漏了模特的东西(我真的不知道我是否必须在我的用户模型上添加一些内容)或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"

1 个答案:

答案 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有了一个想法结果。如果有人为此获得解决方案,请将其添加到评论中;)