Недавно я перенес веб-приложение с ruby 1.8.7 на 1.9.3, и все идет отлично, за исключением поиска. Все работало нормально, пока не наткнулся на рубин. Вот мой код контроллера:
ids = Business.simple_search_for_ids_with_location(@term, @city, @state, {}, :per_page => 2500)
@results = Business.paginate :conditions => { :id => ids }, :page => ActionController::Base.helpers.sanitize(params[:page]), :include => [:category]
@results = @results.sort{|a,b| a.name.downcase <=> b.name.downcase}
@count = @results.total_entries
И из моей модели:
def self.simple_search_for_ids_with_location(term, city, state, conditions={}, options={})
ids = Business.compact_search_for_ids(term, {:conditions => { :address_city => city, :address_state => state }.merge(conditions), :order => :business_name}.merge(options))
if state.blank?
by_state = Business.compact_search_for_ids(term, {:conditions => { :address_state => city }.merge(conditions), :order => :business_name}.merge(options))
ids += by_state
end
ids
end
def self.compact_search_for_ids(*args)
search_for_ids(*args).compact
end
При запуске в браузере получаю undefined method total_entries for []:Array
И оскорбительная строка @count = @results.total_entries
Я убедился, что sphinx установлен, а Think_sphinx проиндексирован и работает.
Вроде все работает, но возвращается пустой массив? Почему раньше это работало нормально?
Я ценю любую помощь, которую я могу здесь получить, так как я действительно не хочу возвращаться к ruby 1.8.7. Спасибо.
>> ids = Business.simple_search_for_ids_with_location('surf', 'atlantic beach', 'fl', {}, :per_page => 2500)
в консоли, я получаю пустой массив. Я точно знаю, что есть компании, которые соответствуют этим критериям поиска. - person shorepound   schedule 23.01.2018ThinkingSphinx::SphinxError: index business_core: sort-by attribute 'business_name_sort' not found
- person shorepound   schedule 24.01.2018rake ts:rebuild
и посмотреть, поможет ли это в поиске? - person pat   schedule 25.01.2018rake ts:rebuild
прерванное выполнение истекло. @pat Я благодарю вас за помощь. - person shorepound   schedule 25.01.2018ThinkingSphinx::SphinxError (index business_core: sort-by attribute 'business_name_sort' not found)
- person shorepound   schedule 25.01.2018