2010-10-18 3 views
10

je mets searchlogic dans mon Gemfile ... et maintenant mon serveur de rails ne démarre pas :(Comment faire fonctionner searchlogic avec les rails 3?

c'est le errormessage

gems/ruby-1.8.7-p299/gems/activesupport-3.0.0/lib/active_support/core_ext/module/aliasing.rb:31:in `alias_method': undefined method `merge_joins' for class `Class' (NameError) 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.0/lib/active_support/core_ext/module/aliasing.rb:31:in `alias_method_chain' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/searchlogic-2.4.27/lib/searchlogic/active_record/consistency.rb:8:in `included' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/searchlogic-2.4.27/lib/searchlogic/active_record/consistency.rb:7:in `class_eval' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/searchlogic-2.4.27/lib/searchlogic/active_record/consistency.rb:7:in `included' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/searchlogic-2.4.27/lib/searchlogic.rb:34:in `include' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/searchlogic-2.4.27/lib/searchlogic.rb:34 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/bundler-1.0.0/lib/bundler/runtime.rb:64:in `require' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/bundler-1.0.0/lib/bundler/runtime.rb:64:in `require' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/bundler-1.0.0/lib/bundler/runtime.rb:62:in `each' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/bundler-1.0.0/lib/bundler/runtime.rb:62:in `require' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/bundler-1.0.0/lib/bundler/runtime.rb:51:in `each' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/bundler-1.0.0/lib/bundler/runtime.rb:51:in `require' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/bundler-1.0.0/lib/bundler.rb:112:in `require' 
from /Users/omiohoro/glowing-rain-75/config/application.rb:7 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/railties-3.0.0/lib/rails/commands.rb:28:in `require' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/railties-3.0.0/lib/rails/commands.rb:28 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/railties-3.0.0/lib/rails/commands.rb:27:in `tap' 
from /Users/omiohoro/.rvm/gems/ruby-1.8.7-p299/gems/railties-3.0.0/lib/rails/commands.rb:27 
from script/rails:6:in `require' 
from script/rails:6 

Comment puis-je résoudre ce problème? Merci d'avance acclamations Tabaluga

Répondre

17

Il y a le railsdog's searchlogic fork sur GitHub qui prend en charge Rails 3.

Vous pouvez l'ajouter à votre Gemfile comme ceci:

gem 'rd_searchlogic', :require => 'searchlogic', :git => 'git://github.com/railsdog/searchlogic.git' 
+0

merci! Je vous remercie! Je vous remercie! – tabaluga

+2

Cette branche de Searchlogic ne fonctionnait pas pour moi sur Rails 3.1 – steve

+3

Cela ne fonctionne pas non plus pour moi sur Rails 3.2 - lib/searchlogic/named_scopes/ordering.rb: 45: dans 'method_missing ': niveau de pile trop profond (SystemStackError –

9

En rails 3, vous pouvez utiliser meta_search à la place.

Il est très similaire à searchlogic mais

<%= order @search, :by => :name, :as => "Order By Name" %> 

est changé en

<%= sort_link @search, :name, "Order By Name" %> 
+1

grâce, hmpfh, mais Y a-t-il un moyen de faire fonctionner searchlogic? – tabaluga

+0

Matt a répondu à la façon de récupérer searchlogic: D En fait, meta_search fonctionne exactement comme searchlogic et après avoir remplacé les 'order' par' sort_link', cela devrait fonctionner comme prévu ^^ – PeterWong

+0

Roger that :) merci – tabaluga

Questions connexes