3

簡単な質問、Sunspotを使用して複数のモデルを検索するにはどうすればよいですか?... RailsでSunspotを使用していますが、複数のモデルを検索する方法が見つからないようです。別のコントローラーを作成する必要がありますか、それともインデックスアクションでギアコントローラーを使用できますか?

助けてくれてありがとう。

(補足:stackoverflowでこれに非常によく似た質問を見つけましたが、コードを投稿していませんでした。冗長性があることをお詫びします。)

私の見解では、次のようになっています。

<div class="side_bar_search">
    <%= form_tag gears_path, :method => :get do %>
      <p>
        <%= text_field_tag :search, params[:search] %>
        <%= submit_tag "Search", :name => nil %>
    <% end %>
</div> 

および以下のモデル

装備

class Gear < ActiveRecord::Base
  attr_accessible :title, :size, :price, :sub_category_id, :user_id, :image, :image_a, :remote_image_url
  belongs_to :user
  belongs_to :sub_category
  has_one :category, :through => :sub_category
  has_many :comments, :dependent => :destroy 
  require 'carrierwave/orm/activerecord'
  mount_uploader :image, GearpicUploader
  mount_uploader :image_a, GearpicUploader


  searchable do
    text :title, :size, :price #need to add sub-category, and User Name.  
  end...

ユーザー

class User < ActiveRecord::Base 
  attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :userimage, :remove_userimage
  has_secure_password
  has_many :gears
  has_many :comments, :dependent => :destroy 
  has_one :store, :dependent => :destroy
  before_save :create_remember_token
  require 'carrierwave/orm/activerecord'
  mount_uploader :userimage, UserpicUploader

   searchable do
     text :first_name, :last_name
   end...                    

ギアコントローラー

class GearsController < ApplicationController
  def index
    @search = Gear.search do
        fulltext params[:search]
        paginate(page: params[:page])
    end

    @gears = @search.results
  end...
4

2 に答える 2

12
Sunspot.search [Gear, User] do
  ....
end
于 2012-05-08T08:00:28.500 に答える
0

また、これに便利な逸品は

https://github.com/toptierlabs/acts_as_fulltextable

検索サーバーとの依存関係はありません。

于 2013-04-02T15:26:45.730 に答える