私は探していますが、解決策が見つかりません。複数のモデル間で、Solrを検索しても検索結果にリダイレクトされない
私は、私のレールアプリで複数のモデル間で検索を作成しています。今は、ユーザーとコミュニティの2つのモデルでセットアップしています。私の検索は、 '/ search'に行き、その後、nav barで検索を実行するとうまくいきます。
私の問題は、ユーザーがnavのメイン検索バーで何かを検索しようとすると、リダイレクトや「/ search」への転送ではないということです。それはちょうど転送し、以下のリンクへ:検索がリダイレクトされ、完了するために
http://localhost:3000/search?utf8=%E2%9C%93&search=&commit=Search
:
http://localhost:3000/?utf8=%E2%9C%93&search=&commit=Search
しかし、私は実際にそれが行く必要があります。
routes.rbを
get '/search', to: 'search#search'
検索コントローラ
class SearchController < ApplicationController
def search
@search = Sunspot.search Community,User do
fulltext params[:search]
end
@results = @search.results
end
end
community.rb
class Community < ActiveRecord::Base
searchable do
text :name
text :description, :expanded_description
end
end
user.rb
class User < ActiveRecord::Base
searchable do
text :username
text :name
end
end
(HAML中)ヘッダビュー
%form.navbar-form.navbar-left
= form_tag search_path, method: 'get' do
= text_field_tag :search, params[:search], class: 'form-control'
= submit_tag "Search", class: 'btn btn-default'
感謝前もってまたは類似の別の質問がある場合は、道に私をポイントしてください。
以下は私が検索したときのログです。
Started GET "/?utf8=%E2%9C%93&search=new&commit=Search" for ::1 at 2016-04-12 17:01:52 -0400
Processing by HomeController#index as HTML
Parameters: {"utf8"=>"✓", "search"=>"new", "commit"=>"Search"}
User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY created_at DESC LIMIT 1
Membership Load (0.4ms) SELECT `memberships`.* FROM `memberships` WHERE `memberships`.`user_id` = 1
Rendered home/_communities_blank_state.html.haml (0.6ms)
Rendered shared/_footer_ctas.html.haml (0.7ms)
Rendered home/_dashboard.html.haml (4.5ms)
Rendered home/index.html.haml within layouts/application (8.2ms)
Rendered shared/_alerts.html.haml (0.2ms)
Rendered shared/_header.html.haml (1.6ms)
routes.rbを
Rails.application.routes.draw do
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
devise_for :users, :controllers => { :registrations => 'users' }
devise_scope :users do
resources :profiles, controller: "profile"
end
root to: 'home#index'
get 'portal', to: 'home#portal'
get '/search', to: 'search#search', as: :search
resources :communities do
resources :supplements
end
resources :contacts, only: [:new, :create]
get '/contact_us' => 'contacts#new'
mount Ckeditor::Engine => '/ckeditor'
end
残念ながら、動作しませんでした。上記は私のログです。 – AGirlThatCodes
'index'ルートはどのように見えますか?あなたのログには、リクエストが 'SearchController#search'ではなく' HomeController#index'によって処理されていると言われています。 –
私が正しく理解していれば、私のルートがどこにあるのか聞いていますか? '' root to: 'home#index' ''のように。 – AGirlThatCodes