Ruby on Rails: 2.3.8: Как мне заставить searchlogic работать с bundler? - PullRequest
1 голос
/ 31 августа 2011

В настоящее время я получаю эту ошибку: NameError: undefined method merge_joins 'для класса Class'

Я просто делаю

gem "searchlogic"

и bundler говорит, что использует версию 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)

EDIT: 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 ]

0 голосов
/ 01 сентября 2011

Как оказалось, версии (и) searchlogic, которые я могу использовать, не работают с bundler, поэтому я просто сохранил это в своей среде. Rb:

config.gem "searchlogic", :version => "whatever"
0 голосов
/ 31 августа 2011

Похоже, что 2.3.5 имеет приличную поддержку Rails 2.3.x:

gem "searchlogic", :version => "2.3.5"

Просмотр истории проекта показывает, что в 2.4.29 была добавлена ​​зависимость от Rails 2.3.11:

https://github.com/binarylogic/searchlogic/blob/v2.4.29/Gemfile

РЕДАКТИРОВАТЬ: Найдены некоторые доказательства того, что Heroku 2.3.5 будет работать с Rails 2.3.8, даже если зависимость не была добавлена ​​до 2.4.28

...