小编jor*_*inl的帖子

在gem的rake任务中需要gem

我正在使用珠宝商为Rails 3创建一个宝石.宝石包含一个rake任务,其中一件事就是擦除数据库,所以我使用'database_cleaner'.

我在gem的Gemfile中指定了gem依赖项

gem 'database_cleaner'
Run Code Online (Sandbox Code Playgroud)

并在Rakefile中

Jeweler::Tasks.new do |gem|
  ...
  gem.add_dependency 'database_cleaner'
end
Run Code Online (Sandbox Code Playgroud)

然后在lib里面我创建了文件my_gem.rb和tasks.rake.如下,my_gem.rb:

module MyGem
  class Railtie < Rails::Railtie
    rake_tasks do
      load 'tasks.rake'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

和tasks.rake:

task :my_task do
  DatabaseCleaner.strategy = :truncation
  DatabaseCleaner.clean
end
Run Code Online (Sandbox Code Playgroud)

我安装了gem(sudo rake install),创建了一个空的rails项目,并在rails的Gemspec(gem 'my_gem')中添加了gem依赖项.但是当我尝试运行时,rake my_task我得到了错误uninitialized constant DatabaseCleaner.

我也尝试require 'database_cleaner'从任务内部添加,这会引发错误no such file to load -- database_cleanergem 'database_cleaner'引发错误database_cleaner is not part of the bundle. Add it to Gemfile..

有没有办法解决这个问题,而无需添加gem 'database_cleaner'到rails项目的Gemspec? …

ruby ruby-on-rails bundler ruby-on-rails-3

6
推荐指数
1
解决办法
5977
查看次数

Google协作平台API + OAuth2(在Appengine上)

我一直在尝试使用Python库来访问Google Sites API.

第一步要求用户授权我们的应用程序,他们建议使用OAuth2,并提供可在此处找到的库.

在授权过程结束时,您最终会得到一个OAuth2Credentials对象.

问题是,当我尝试向Google Sites API发出请求时,我想说:

import gdata.sites.client
client = gdata.sites.client.SitesClient(site=None, domain='mydomain.com')
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用OAuth2Credentials对象.

python google-app-engine google-data-api oauth-2.0

3
推荐指数
1
解决办法
2025
查看次数