コントローラー、モデル、ビュー(Gears Model)にファセット設定を使用して、黒点検索を行うインデックスページ設定があります。
アプリケーションのホームページに別の検索フォーム(別のビューとコントローラー)を配置しようとしていますが、フォームでユーザーをGearsModelの検索結果のインデックスページにリダイレクトしたいと思います。現在、ルートページはコントローラーのない静的ページです。検索結果を渡してビューをリダイレクトするにはどうすればよいですか?
私はこれを間違って考えているかもしれません、どんな助けでもありがたいです。
私のコード...
ルート
Outdoor::Application.routes.draw do
resources :gears do
resources :calendars, :only => [:create, :destroy, :edit]
resources :comments, :only => [:create, :destroy]
end
match '/gear', to: "gears#index"
root to: 'pages#home'
end
コントローラ
class GearsController < ApplicationController
respond_to :html, :json
def index
@search = Gear.solr_search do
fulltext params[:search]
facet (:category_name)
facet (:sub_category_name)
facet (:state)
facet (:city)
facet (:price)
with(:price, params[:price]) if params[:price].present?
with(:state, params[:state]) if params[:state].present?
with(:city, params[:city]) if params[:city].present?
with(:sub_category_name, params[:name]) if params[:name].present?
with(:category_name, params[:categoryname]) if params[:categoryname].present?
paginate(page: params[:page], :per_page => 15)
end
@gears = @search.results
end
end
ホームページビューフォーム(フォームヘルパーを使用するように変更していません)
<form id="homesearch_form" >
<fieldset>
<input type="text" name="homesearchbox" id="homesearch_textarea" onfocus="if(this.value=='Enter the location you’d like to rent gear')this.value='';" value="Enter the location you’d like to rent gear" onblur="if(this.value=='')this.value='Enter the location you’d like to rent gear'"/>
<input type="submit" id="homesearch_submit" value="" />
</fieldset>
<fieldset id="rentaldate_home" class="form-inline">
<input type="text" name="rentaldate_home_from" id="rentaldate_home_from" onfocus="if(this.value=='From')this.value='';" value="From" onblur="if(this.value=='')this.value='From'" />
<input type="text" name="rentaldate_home_to" id="rentaldate_home_to" onfocus="if(this.value=='To')this.value='';" value="To" onblur="if(this.value=='')this.value='To'" />
</fieldset>
</form>
助けてくれてありがとう。
解決済み
ホームページのフォームを次のように変更しました。
<%= form_tag({:controller => "gears", :action => "index"}, :method => "get", :id => "homesearch_form") do %>
<%= text_field_tag :search, params[:search], id: 'homesearch_textarea' %>
<%= submit_tag "", :name => nil, id: 'homesearch_submit' %>
<% end %>