Ruby on Rails:2.3.8:如何让 searchlogic 与捆绑器一起使用?
目前,我收到此错误: NameError: undefined method
merge_joins' for class Class'
我刚刚在做
gem "searchlogic"
,bundler 说它正在使用版本 2.4.28
那么...在 Rails 2.3.8 中使用正确的 searchlogic 版本是什么?
开始需要 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
searchlogic 2.4.28 是在我的环境中第 16 行
Bundler.require(:default)
,我这样做:编辑: 宝石文件:
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"
Currently, I get this error: NameError: undefined method
merge_joins' for class Class'
i'm just doing
gem "searchlogic"
and bundler says that it is using version 2.4.28
So... what in the right searchlogic version to use with rails 2.3.8?
searchlogic 2.4.28 was the last version available before it started requiring 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
on line 16 in my env, I do this:
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"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看起来 2.3.5 具有不错的 Rails 2.3.x 支持:
通过 Grepping 浏览项目历史显示 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 才添加依赖项
It looks like 2.3.5 has decent Rails 2.3.x support:
Grepping through the history of the project shows the Rails 2.3.11 dependency was added in 2.4.29:
https://github.com/binarylogic/searchlogic/blob/v2.4.29/Gemfile
EDIT: Found some evidence on Heroku 2.3.5 will work with Rails 2.3.8, even though the dependency wasn't added until 2.4.28
事实证明,我可以使用的 searchlogic 版本不适用于捆绑器,因此我只是将其保留在我的环境中。rb:
As it turns out, the version(s) of searchlogic that I can use don't work with bundler, so I just kept this in my environment.rb: