我正在尝试将sunspot_rails gem添加到我的Rails Mountable Engine,因此我可以使用Solr进行全文搜索。就像它在README文件中说的那样,我已将它添加到我的Gemfile中:
gem "sunspot_rails"
gem "sunspot_solr"
然后我运行rails g sunspot_rails:install
,在我的Rails引擎的sunspot.yml
文件夹中创建config
。要开始太阳黑子,我需要运行:
bundle exec rake sunspot:solr:start
但这不起作用,并给我以下错误消息:
rake aborted!
Don't know how to build task 'sunspot:solr:start'
它似乎没有加载Sunspot / Solr rake任务,因此无法找到它们。我还有其他问题,Rails引擎没有加载会在普通的Rails 3应用程序中自动加载的文件。我怀疑这条线上的东西也在这里。我检查了lib/tasks
文件夹,其中只有一个文件:my_app.rake
。在该文件中,只有少数注释代码行:
# desc "Explaining what the task does"
# task :my_app do
# # Task goes here
# end
我想我可能需要手动添加raketasks,并从my_app.rake
加载它们。但是,我找不到任何关于如何做到这一点的信息,而且我可能在一开始就完全错了。希望stackoverflow上有人有这方面的经验。
无论如何,非常感谢您提前提供任何帮助!
答案 0 :(得分:2)
前几天我自己找到了解决这个问题的方法,所以为了完整性和(希望)能帮助别人,我会在这里发布我的解决方案。
问题实际上是因为Rails 3可安装引擎表现得很像普通的Rails应用程序,但也有很多次要/主要差异。您只需运行bundle exec rake app:sunspot:solr:start
而不只是bundle exec rake sunspot:solr:start
。
为了让Sunspot在Rails 3可安装引擎中工作,我按照以下步骤操作:
添加到Gemfile
# Gemfile (Don't forget to move them to your gemspec when packaging your engine)
gem 'sunspot_solr' #only for development mode
gen 'sunspot_rails'
之后,不要忘记运行bundle install
来安装宝石。
将引擎配置为使用Sunspot / Solr
生成所需的config/sunspot.yml
文件运行:
rails generate sunspot_rails:install
在本地计算机上启动Solr
最后,要启动Solr run的本地实例:
bundle exec rake app:sunspot:solr:start
现在你已经准备就绪了!