Ruby on Rails: 2.3.8: Как мне заставить searchlogic работать с bundler?
В настоящее время я получаю эту ошибку: NameError: undefined method
merge_joins 'для класса Class'
я просто делаю
gem "searchlogic"
и упаковщик говорит, что он использует версию 2.4.28
Итак... что в правильной версии searchlogic для использования с рельсами 2.3.8?
searchlogic 2.4.28 была последней доступной версией, прежде чем она начала требовать 2.3.11 =\
NameError: undefined method `merge_joins' for class `Class'
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/module/aliasing.rb:33:in `alias_method'
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/module/aliasing.rb:33:in `alias_method_chain'
/Library/Ruby/Gems/1.8/gems/searchlogic-2.4.28/lib/searchlogic/active_record/consistency.rb:8:in `included'
/Library/Ruby/Gems/1.8/gems/searchlogic-2.4.28/lib/searchlogic/active_record/consistency.rb:7:in `class_eval'
/Library/Ruby/Gems/1.8/gems/searchlogic-2.4.28/lib/searchlogic/active_record/consistency.rb:7:in `included'
/Library/Ruby/Gems/1.8/gems/searchlogic-2.4.28/lib/searchlogic.rb:34:in `include'
/Library/Ruby/Gems/1.8/gems/searchlogic-2.4.28/lib/searchlogic.rb:34
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/runtime.rb:68:in `require'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/runtime.rb:68:in `require'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/runtime.rb:66:in `each'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/runtime.rb:66:in `require'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/runtime.rb:55:in `each'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler/runtime.rb:55:in `require'
/Library/Ruby/Gems/1.8/gems/bundler-1.0.18/lib/bundler.rb:120:in `require'
~/category/app/config/environment.rb:16
в строке 16 в моем env я делаю это:
Bundler.require(:default)
РЕДАКТИРОВАТЬ: Gemfile:
source "http://rubygems.org"
# system
gem "rails", "2.3.8"
gem "activesupport", "2.3.8", :require => "active_support"
gem "rake", "0.8.7"
# might be for POW, not sure
gem "childprocess", "0.2.2", :git => "git://github.com/jarib/childprocess.git"
# app
gem "mysql", "2.7"
gem "lockfile"
gem "ssl_requirement", "0.1.0"
gem "attr_encrypted", "1.1.2"
gem "searchlogic", "2.3.5"
gem "will_paginate", "2.3.14"
gem "garb", "0.7.6"
gem "delayed_job", "2.0.3"
gem "httparty", "0.5.2"
gem "pony", "1.1"
gem "friendly_id", "3.0.6"
gem "stringex", "1.1.0"
gem "i18n", "0.4.2"
gem "sms_fu", "1.1.1"
2 ответа
Оказывается, версии (и) searchlogic, которые я могу использовать, не работают с bundler, поэтому я просто сохранил это в своей среде. Rb:
config.gem "searchlogic", :version => "whatever"
Похоже, что 2.3.5 имеет приличную поддержку Rails 2.3.x:
gem "searchlogic", :version => "2.3.5"
Просмотр истории проекта показывает, что зависимость от Rails 2.3.11 была добавлена в 2.4.29:
https://github.com/binarylogic/searchlogic/blob/v2.4.29/Gemfile
РЕДАКТИРОВАТЬ: нашел некоторые доказательства того, что Heroku 2.3.5 будет работать с Rails 2.3.8, даже если зависимость не была добавлена до 2.4.28