4

我使用宝石来思考狮身人面像:

sudo gem install freelancing-god-thinking-sphinx \
  --source http://gems.github.com

所以:

require 'vendor/plugins/thinking-sphinx/recipes/thinking_sphinx'

网站上规定的内容不起作用。

使用 gem 时,如何在我的 deploy.rb 文件中包含 capistrano thinking sphinx 任务?

编辑

添加:require 'thinking_sphinx/deploy/capistrano'

给我:

 
/usr/lib/ruby/gems/1.8/gems/freelancing-god-thinking-sphinx-1.1.12/lib/thinking_sphinx/deploy/capistrano.rb:1:main:Object 的未定义方法“命名空间”(NoMethodError)
        来自 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        来自 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        来自 /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.8/lib/capistrano/configuration/loading.rb:152:in `require'

4

4 回答 4

5

另一个答案中定义的简单要求 - thinking_sphinx/deploy/capistrano - 应该可以工作。如果不是,您是否看到任何错误?您使用的是什么版本的 gem?

如果失败了,也许可以尝试一下sudo gem update,以防你的宝石是旧的。

于 2009-09-22T06:57:32.237 回答
3

@Khellll:你能读一下这个话题吗?您正在粘贴使用 TS 作为插件的代码。

作为 Gem,您应该使用:

require 'thinking_sphinx/deploy/capistrano'

这完美无缺。

还应该更改网站上提到的 capistrano 任务,以反映来自 capistrano 的新回调之前和之后的回调,以摆脱弃用通知:

before "deploy:update_code", "thinking_sphinx:stop"
after "deploy:symlink", "symlink_sphinx_indexes"
after "deploy:symlink", "thinking_sphinx:configure"
after "deploy:symlink", "thinking_sphinx:start"
于 2011-01-03T09:49:35.143 回答
1

您正在谈论安装 gem,然后需要一个插件。您是否尝试过安装 Thinking Sphinx 的插件版本?

编辑:我说得太快了,很清楚。部署配方位于lib/thinking_sphinx/deploy/capistrano. 尝试一下require 'thinking_sphinx/deploy/capistrano',您应该可以访问部署配方——在一个测试项目中,我只是将其放入我的 Rakefile 中,并且我可以访问它们。

在一个全新的项目中,我将以下内容放入我的 Capfile 中:

load 'deploy' if respond_to?(:namespace) # cap2 differentiator
Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
load 'config/deploy'
require 'thinking_sphinx/deploy/capistrano'

当我执行 cap -T 时,我看到了 thinking_sphinx capistrano 任务。我想我上面写的是因为我安装了插件。/me 打自己。

于 2009-09-22T05:17:33.510 回答
0

怎么样:

require 'vendor/plugins/thinking_sphinx/lib/thinking_sphinx/deploy/capistrano'
于 2009-09-22T05:16:59.143 回答