更新しました
Rails 3.2 アプリケーションでデータを検索およびフィルタリングするために、sunspot/solr を使用しています。これは、「Gear」モデルで実行している 2 つの solr 検索の 2 つ目です。
最初の検索では、クエリと適用されたファセットに基づいてビューにすべての歯車が表示されます (歯車はユーザーに属し、ユーザーは多くの歯車を持っています)。
今、私はおそらくこれについて間違って考えています (私はこれをしばらく見ていないからです)。
基本的には新しい検索を作成していますが、これも「ギア」モデルにありますが、別のコントローラー、別のビューにあり、ユーザーのギアの結果のみを検索/フィルター/ファセットしようとしていますが、私はデータベース内のすべてのギアを取得します。
次のエラーが発生しています...
nil の id と呼ばれますが、これは誤って 4 になります -- 本当に nil の id が必要な場合は、object_id を使用してください
私は何が欠けていますか?
コントローラーでアクションを表示
def show
@store = Store.find(params[:id])
@user = @store.user
@search2 = Gear.solr_search do
fulltext params[:search]
facet (:category_name)
facet(:sub_category_name)
facet (:state)
facet (:city)
facet (:price)
with(:user_id, @user.id)
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 = @search2.results
end
太陽黒点を試す前に、この@gears = @store.user.gears.paginate(page: params[:page])を実行していました。
ギアモデル
class Gear < ActiveRecord::Base
attr_accessible :title, :size, :price, :sub_category_id, :user_id, :image, :image_a, :image_b, :image_c, :image_d, :image_e, :image_f, :image_g, :image_h, :image_i, :remote_image_url, :color, :year, :latefee, :cancellation, :minrental, :policy, :about, :address, :city, :state, :zip, :country, :latitude, :longitude, :gmaps
belongs_to :user
belongs_to :sub_category
searchable do
text :title, :size, :price, :year, :zip, :state, :city, :minrental, :about, :latefee, :color
text :user_firstname do
user.firstname
end
text :user_lastname do
user.lastname
end
# **Facet Section**
string :size
string :price
string :state
string :city
string :sub_category_name , :multiple => true, :stored => true do
sub_category.name
end
string :category_name, :multiple => true, :stored => true do
category.name
end
end
end
店舗モデル
class Store < ActiveRecord::Base
attr_accessible :storeimage, :storename
belongs_to :user
mount_uploader :storeimage, StoreUploader
end
ユーザーモデル
class User < ActiveRecord::Base
attr_accessible :email, :password, :password_confirmation, :remember_me, :firstname, :lastname, :userimage, :remove_userimage, :name
has_many :gears
has_many :comments, :dependent => :destroy
has_one :store, :dependent => :destroy
require 'carrierwave/orm/activerecord'
mount_uploader :userimage, UserpicUploader
accepts_nested_attributes_for :store
end