我有一个使用太阳黑子的 rails 4 应用程序。这是我的控制器:
before_action :set_product_type
def index
if params[:search].present?
@search = Product.search do
fulltext params[:search]
with(:product_type_id, @product_type.id)
end
@products = @search.results
else
@products = Product.all.where(:product_type_id => @product_type.id)
end
end
private
def set_product_type
@product_type = Product_type.find(params[:product_type_id])
end
这是我的模型:
searchable do
text :data
integer :product_type_id
end
当我使用它时,我得到:
undefined method `id' for nil:NilClass
但是当我使用静态值时:
with(:product_type_id, 3)
它工作正常。
我认为这可能是因为 @product_type.id 为空,但是当我打印出来时,@product_type.id
它被设置为一个值。
感谢大家的帮助!