2
我想用with(:is_available, true)
來過濾太陽黑子的搜索結果。 這是與User
模型,但我不能使它與Itinerary
模型。如何使用嵌套模型限制太陽黑子搜索?
應用程序/控制器/ search_controller.rb:
class SearchController < ApplicationController
before_filter :fulltext_actions
private
def fulltext_actions
@itineraries = do_fulltext_search(Itinerary)
@users = do_fulltext_search(User)
@itineraries_size = @itineraries.size
@users_size = @users.size
end
def do_fulltext_search(model)
Sunspot.search(model) do
with(:is_available, true)
fulltext params[:search]
end.results
end
end
應用/模型/ user.rb:
class User < ActiveRecord::Base
has_many :itineraries, :dependent => :destroy
searchable do
text :first_name, :boost => 3
text :last_name, :boost => 3
text :status
boolean :is_available, :using => :available?
end
def available?
!self.suspended
end
end
應用/模型/ itinerary.rb:
class Itinerary < ActiveRecord::Base
belongs_to :user
searchable do
text :title, :boost => 3
text :budget
text :description
boolean :is_available, :using => :available?
end
def available?
!self.user.suspended
end
end
不限想法?
謝謝!
什麼用無操作'inject'聲明瞭?你只是在那裏尋找一個'to_a'? – outoftime 2011-12-20 13:16:17
該死的......是的。好吧,我需要多睡一會兒... – 2011-12-20 13:17:05