【问题标题】:Simple Search with Rails - Search Results on Separate Page使用 Rails 进行简单搜索 - 在单独的页面上搜索结果
【发布时间】:2014-10-26 07:16:29
【问题描述】:

我从 Rails 开始,并尝试合并一个简单的搜索,但目前为止。 该字符串看起来不错,但似乎没有执行到结果页面。当我尝试包含 restful 资源时,似乎存在许多问题 nil 方法、缺少操作或路由失败。

我希望在一个页面上搜索(搜索)并将结果填充到另一个结果页面(地图)。 两者都在 PagesController 之下,并且是其中的操作。

该表称为 towns,用户条目和 CRUD 区域由 TownsController 控制,并与设计 User_id 关联。

然后是具有搜索、地图、关于、联系页面的页面控制器。

class PagesController < ApplicationController

  def index
  end

  def search
    @towns = Town.search(params[:search])
  end

  def page
  end

  def map
  end
end
--------------------------

class Town < ActiveRecord::Base

geocoded_by :name
  after_validation :geocode

  belongs_to :user

def self.search(search)
   if search
     search_condition = "%" + search + "%"
     where(['townName LIKE ? OR townDescription LIKE ?', search_condition, search_condition])
   end
 end

-------------------------

views

search.html.erb

<div class="form-group">
 <%= form_tag(pages_map_path , method: "get") do %>
  <p>
    <%= text_field_tag :search, params[:search], class: 'search-text' %>
    <%= submit_tag "Search", :name => nil, class: 'btn btn-primary btn-lg'%>
  </p>
<% end %>

results  --> to map page

map.html.erb

<ul>
    <% @towns.each do |town| %>
  <li><%= link_to town.name,
    :action => 'map', :id => town.id  %></li>
  <% end %>
</ul>

---------------------------
routes
Rails.application.routes.draw do
devise_for :users

get "pages/search"
get "pages/index"
get "pages/contact"
get "pages/about"
get "pages/map"
get "pages/page"


match ':controller(/:action(/:id))', :via => [:get, :post]

root 'pages#search'



end

【问题讨论】:

    标签: postgresql ruby-on-rails-4


    【解决方案1】:

    解决方案:

    搜索查询中的列名不正确

    townName LIKE ? OR townDescription should be =  name LIKE ? OR description 
    

    更新结果页面调用:

    <ul>
        <% @towns.each do |town| %>
      <h2><li><%= link_to @name, controller: 'towns', :action => 'show', :id => town.id  %></li></h2>
      <% end %>
    </ul>
    

    【讨论】:

      猜你喜欢
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 2016-04-07
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多