【问题标题】:Sunspot/Solr raketasks not loading in Rails 3 Mountable EngineSunspot/Solr raketasks 未在 Rails 3 可安装引擎中加载
【发布时间】:2013-05-11 22:35:00
【问题描述】:

我正在尝试将sunspot_rails gem 添加到我的Rails Mountable Engine,这样我就可以使用 Solr 进行全文搜索。就像它在 README 文件中所说的那样,我已将其添加到我的 Gemfile 中:

gem "sunspot_rails"
gem "sunspot_solr"

然后我运行rails g sunspot_rails:install,它在我的Rails 引擎的config 文件夹中创建sunspot.yml。要启动太阳黑子,我需要运行:

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 上的人有这方面的经验。

无论如何,非常感谢您提前提供的任何帮助!

【问题讨论】:

    标签: ruby-on-rails-3.1 sunspot rails-engines sunspot-solr


    【解决方案1】:

    几天前自己找到了解决此问题的方法,因此为了完整起见并(希望)对其他人有所帮助,我将在此处发布我的解决方案。

    之所以会出现问题,是因为 Rails 3 Mountable Engine 的行为与普通的 Rails 应用程序非常相似,但也有很多次要/主要差异。您只需运行bundle exec rake app:sunspot:solr:start 而不仅仅是bundle exec rake sunspot:solr:start

    为了让 Sunspot 在 Rails 3 Mountable Engine 中工作,我遵循了以下步骤:

    添加到 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 来安装gem。

    配置您的引擎以使用 Sunspot/Solr

    生成所需的config/sunspot.yml 文件运行:

    rails generate sunspot_rails:install
    

    在本地机器上启动 Solr

    最后,启动一个本地的 Solr 实例运行:

    bundle exec rake app:sunspot:solr:start
    

    现在你们都准备好了!

    【讨论】:

      猜你喜欢
      • 2021-04-25
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多