使用ransack创建搜索页面并将结果路由到同一页面

时间:2013-04-23 17:04:36

标签: ruby-on-rails ruby search search-engine ransack

我是RoR的新手。我正在尝试创建一个主页/索引页面,其中包含一个搜索表单,用于搜索ransack gem。 我不知道该怎么办。
我有6个相互关联的模型。我想创建一个搜索表单并将结果路由回查看者的搜索页面。

任何帮助都会非常感激,因为我已经花了4天时间试图解决这个问题。

谢谢

以下内容获取输入,然后将我重定向到带有搜索结果的应用程序/索引页面。

applications_controller.rb

class ApplicationsController < ApplicationController
  before_filter :authenticate_user!
  before_filter :only_allow_admin, :only => [ :index, :edit, :destroy ]

  # GET /applications
  # GET /applications.json
  def index
    @apps = Application.all
    @search = Application.search(params[:q])
    @apps = @search.result
    @search.build_condition
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @apps }
    end
  end

home_controller.rb

class HomeController < ApplicationController
  #before_filter :search

  def search
    # @searchphrase = "%" + params[:q] + "%"
    # @results = Database.find(:all, :conditions => [ "name LIKE ? ", @searchphrase])
    # render :layout => false
  end

  def index
    @search = Application.search(params[:q])
    @apps = @search.result
    @search.build_condition

    respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @apps }
    end
  end

  def about
  end

end
家庭控制器中的

index.html.erb

<h2>Core Database</h2>
<%= javascript_include_tag "prototype" %>
<%= search_form_for @search do |f| %>
  <div class="field">
    <%= f.label :name_cont, "Name contains" %>
    <%= f.text_field :name_cont %>
  </div>
  <div class="actions"><%= f.submit "Search" %></div>
<% end %>

<div id="results"><% yield %></div>

0 个答案:

没有答案