当我尝试这样做时,bundler update我收到此错误:
.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in
`to_specs': Could not find bundler (>= 0) amongst
[rake-0.8.7, rake-0.8.7, rubygems-update-1.8.4] (Gem::LoadError)
Run Code Online (Sandbox Code Playgroud)
我是Ruby的新手,有人可以告诉我是什么原因造成的吗?安装了耙0.8.7.
我已经有一个deploy.rb可以在我的生产服务器上部署我的应用程序.
我的应用程序包含一个自定义rake任务(lib/tasks目录中的.rake文件).
我想创建一个能够远程运行该rake任务的上限任务.
我越来越类似于那些错误的 这些 问题,除了我的是上发生的Heroku:
2011-05-30T09:03:29+00:00 heroku[worker.1]: Starting process with command: `rake jobs:work`
2011-05-30T09:03:30+00:00 app[worker.1]: (in /app)
2011-05-30T09:03:30+00:00 heroku[worker.1]: State changed from starting to up
2011-05-30T09:03:33+00:00 app[worker.1]: rake aborted!
2011-05-30T09:03:33+00:00 app[worker.1]: uninitialized constant Rake::DSL
2011-05-30T09:03:33+00:00 app[worker.1]: /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
Run Code Online (Sandbox Code Playgroud)
这些问题的答案似乎是要指定,gem 'rake', '0.8.7'因为0.9版本会导致问题.
当我尝试添加gem 'rake', '0.8.7'到我的gemfile并推送到Heroku时,我收到此错误:
Unresolved dependencies detected; Installing...
You have modified your Gemfile in development but did not check
the resulting snapshot (Gemfile.lock) into version control
You have added to the Gemfile:
* rake …Run Code Online (Sandbox Code Playgroud) 安装设备后,我得到了这个.
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
# t.encryptable
# t.confirmable
# t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
# t.token_authenticatable
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
# add_index :users, :confirmation_token, :unique => true
# add_index :users, :unlock_token, :unique => true
# add_index :users, :authentication_token, :unique => true
end
def self.down
drop_table :users
end
end
Run Code Online (Sandbox Code Playgroud)
现在,如果我执行rake db:migrate,将创建users表.
如何恢复此迁移,即如何再次使用rake删除users表?
migration rake ruby-on-rails database-migration ruby-on-rails-3.1
我试图在我的rails应用程序中运行一大堆迁移.我怎样才能做到这一点?我不希望在它之前或之后运行任何迁移.谢谢.
我正在编写Ruby on Rails 3教程书并在命令行上输入以下内容:
rake db:migrate
Run Code Online (Sandbox Code Playgroud)
产生了以下警告.
WARNING: Global access to Rake DSL methods is deprecated. Please Include
... Rake::DSL into classes and modules which use the Rake DSL methods.
WARNING: DSL method DemoApp::Application#task called at /Users/imac/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks'
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做或如何使用它.我不知道Rake的任何其他命令.
我该如何解决这个问题?
当我rake db:seed在我的Rails应用程序中运行时,我收到此错误:
US-ASCII中的无效字节序列(参数错误)
我只是添加science_majors到我的种子文件,现在当我运行rake db:seed它给我这个错误:
无效的字节序列错误
为什么会这样,我该如何解决?
seed.rb的一部分
@college = College.find_or_create_by_name!('University of Pittsburgh')
if @college.update_attributes(
url: 'university-of-pittsburgh',
public: 'Public',
years: '4-year',
category: 'National University',
calendar: 'Semester',
location: 'Pittsburgh, PA',
setting: 'Large City (250-500k)',
retention: '90',
majors: 'business/marketing: 15%|social sciences: 14%|health professions: 11%|english: 10%|engineering: 9%|psychology: 8%|biology: 7%|history: 5%',
scholarships_link: 'http://www.oafa.pitt.edu/universityschlrs.aspx',
map: '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=university+of+pittsburgh&aq=&sll=40.444261,-79.970448&sspn=0.142165,0.251656&ie=UTF8&hq=university+of+pittsburgh&t=m&ll=40.443486,-79.958245&spn=0.010798,0.021038&output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=university+of+pittsburgh&aq=&sll=40.431368,-79.9805&sspn=0.142165,0.251656&ie=UTF8&hq=university+of+pittsburgh&t=m&ll=40.443486,-79.958245&spn=0.010798,0.021038" style="color:#0000FF;text-align:left">View Larger Map</a></small>',
street_view: '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" …Run Code Online (Sandbox Code Playgroud) 给出如下内容:
namespace :my_tasks do
task :foo do
do_something
end
task :bar do
do_something_else
end
task :all => [:foo, :bar]
end
Run Code Online (Sandbox Code Playgroud)
我如何:all成为默认任务,以便运行rake my_tasks会调用它(而不是必须调用rake my_tasks:all)?
如何在终端/控制台中运行此rake文件?
我在lib/tasks中的statistik.rake
desc "Importer statistikker"
namespace :reklamer do
task :iqmedier => :environment do
...
end
task :euroads => :environment do
...
end
task :mikkelsen => :environment do
...
end
task :orville => :environment do
...
end
end
Run Code Online (Sandbox Code Playgroud) 我想从控制台调用我的rake任务.它可行吗?如果有,怎么办?
我在控制台上尝试了这个:
require 'rake'
Rake::Task['my_task'].invoke
Run Code Online (Sandbox Code Playgroud)
但它给了我这个错误:
RuntimeError: Don't know how to build task
Run Code Online (Sandbox Code Playgroud)
就像耙子找不到任务一样.
任何帮助,将不胜感激.
谢谢
编辑:我正在使用rails 2.3.5