更新
我正在使用 sunspot/solr 在我的 Rails 3.2 应用程序中搜索和过滤数据。这是我在“Gear”模型上执行的两次 solr 搜索中的第二次。
我的第一次搜索根据查询和应用的方面显示视图中的所有齿轮(一个齿轮属于一个用户,一个用户有很多齿轮)。
现在我可能正在错误地思考这个问题(因为我有一段时间没看过这个了)。
基本上我现在正在建立一个新的搜索,但这也在“齿轮”模型上,但它在不同的控制器、不同的视图中,我试图只搜索/过滤/刻面用户齿轮的结果,但我是获取数据库中的所有齿轮。
出现以下错误...
为 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