我想在用戶點擊「搜索」按鈕時渲染表單的結果。渲染結果爲Form rails/gem geocoder
我想我缺少一些與模型(我真的不知道我是否必須添加一些東西在我的用戶模型)或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('City')中工作),但我只想顯示一個結果列表,就像這樣當我單擊表單時:
圍繞倫敦/距離10公里=>>搜索<
結果
> @user 1
> @user 2
我希望有人得到了答案對我來說,許多在此先感謝
Route.rb
Rails.application.routes.draw do
devise_for :users
resources :users, only: [:index, :show]
root "pages#home"
get "search" => "pages#search"
你可以發佈你的'routes.rb'文件,並且還可以將你的'def index'動作重命名爲'def search'並查看是否有幫助? –
我會用我的route.rb更新這個問題,我會嘗試重命名,謝謝你的回答! –
看起來您可能還需要爲「搜索#搜索」操作添加路由。嘗試添加諸如'get'/ city_search'之類的內容到'searchs#search'。如果你想採取這個聊天,所以我可以進一步詳細解釋如何做到這一切,我會很樂意這樣做。 –