我有一个带searchable
块的模型,如下所示:
class Contact < ActiveRecord::Base
searchable do
text :contact_name, :company_name, :contact_email
end
end
在控制器的index
操作中,我正在调用Contact.new
,它在页面上给出了一条错误消息,该消息当前正在我们的临时服务器上运行:
#&lt; Class:0xce0bf80&gt;
的未定义方法`searchable'
堆栈跟踪通过控制器中的searchable
行指向模型中的Contact.new
块。
当我在本地运行代码时,无论是在网页上还是在控制台上,还是通过Staging服务器上的控制台,都不会出现此错误 - 仅在Staging网页上显示。
Solr服务在Staging服务器上正常运行,数据已成功编入索引。关于为什么它不在舞台上打球的任何理论都将被接受。
修改
在回答Nick的问题时,Gemfile只有太阳黑子这一行:gem 'sunspot_rails'
对于Gemfile.lock,这些是我能看到的包含Sunspot或Solr引用的所有行:
GEM
rsolr (0.12.1)
builder (>= 2.1.2)
sunspot (1.2.1)
escape (= 0.0.4)
pr_geohash (~> 1.0)
rsolr (= 0.12.1)
sunspot_rails (1.2.1)
nokogiri
sunspot (= 1.2.1)
DEPENDENCIES
sunspot_rails
答案 0 :(得分:13)
我遇到了同样的问题,我只需要重启我的rails服务器。简单的解决方案,但如果它不是为某个建议我这样做的其他帖子,我可能会尝试在尝试重新启动服务器之前调试错误更长的时间,呵呵......
答案 1 :(得分:5)
如果您在安装新的太阳黑子宝石后忘记重新启动rails服务器
,也会发生这种情况答案 2 :(得分:0)
听起来好像宝石未在您的临时站点上正确加载。如果您可以显示Gemfile和Gemfile.lock的相关部分,我可以使用更多答案进行更新。
编辑 - Gemfile看起来很好。对不起,但我没有能够得到我的应用程序。向Sunspot邮件列表报告错误? http://outoftime.github.com/sunspot
答案 3 :(得分:0)
阅读this post后 我明白问题是因为rake任务行阻止了太阳黑子的加载 我设法通过以下方式解决它:
我从我的Rakefile中删除了以下行 需要'太阳黑子/铁轨/任务'
我创建了一个sunspot.rake文件,并从sunspot gem源添加了以下文件的内容: /gems/sunspot_rails-1.2.1/lib/sunspot/rails/tasks.rb
我知道这是一个黑客,但它正在发挥作用。
答案 4 :(得分:0)
我刚运行spring stop
并修复了问题