标签: rake

Ruby on Rails和Rake问题:未初始化的常量Rake :: DSL

我有一个非常令人沮丧的问题:耙子是愚蠢的.

以下是问题的解决方法:

$ rails new test_app
$ rails generate scaffold new_scaffold field1:string field2:text
Run Code Online (Sandbox Code Playgroud)

这两个工作都很好,但是当我这样做时,

$ rake db:migrate
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

(in /home/mikhail/test_app)
rake aborted!
uninitialized constant Rake::DSL
/usr/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:6:in `<module:Rake>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:3:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `require'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `load'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `each'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `initialize_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
/home/mikhail/test_app/Rakefile:7:in `<top (required)>'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `load'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/lib/ruby/1.9.1/rake.rb:2006:in …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails

190
推荐指数
9
解决办法
9万
查看次数

如何使用rake db:migrate只回滚一步

在文件db/migrate夹中添加迁移文件并运行后rake db:migrate,我想回到上一步,我认为使用VERSION=n是正确的方法,但我不知道使用n的正确值.有没有命令检查当前的n值?

如果有人能提供有关如何使用的完整说明,那就太好了rake db:migrate.

rake ruby-on-rails dbmigrate

185
推荐指数
4
解决办法
12万
查看次数

为什么Ruby 1.9.2删除"." 来自LOAD_PATH,有什么替代方案?

Ruby 1.9.2的最新变更集不再使当前目录.成为您的目录LOAD_PATH.我有一些非常重要的Rakefiles假设它.是其中的一部分LOAD_PATH,所以这打破了它们(他们报告"没有这样的文件加载"所有基于项目路径的require语句).这样做有什么特别的理由吗?

至于一个修复,添加$: << "."到处都有效,但看起来非常h​​acky,我不想这样做.使Rakefiles 1.9.2+兼容的首选方法是什么?

ruby rake require load-path

154
推荐指数
5
解决办法
4万
查看次数

使用Rake 0.9.0的未定义方法'任务'

我刚刚将Rake更新到最新版本(0.9.0.beta.4),该rake命令最终出现以下错误消息:

rake aborted!
undefined method `task' for #<Anelis::Application:0x9223b6c>
Run Code Online (Sandbox Code Playgroud)

这是跟踪:

undefined method `task' for #<Anelis::Application:0x97ef80c>
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:214:in `initialize_tasks'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:139:in `load_tasks'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
/home/amokrane/Documents/prog/web/learning_rails/anelis/Rakefile:7:in `load_string'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/environment.rb:28:in `eval'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/environment.rb:28:in `load_string'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/environment.rb:16:in `load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:495:in `raw_load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:78:in `block in load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:77:in `load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:61:in `block in run'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/lib/rake/application.rb:59:in `run'
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/rake-0.9.0.beta.4/bin/rake:31:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.2-p136/bin/rake:19:in `load'
/usr/local/rvm/gems/ruby-1.9.2-p136/bin/rake:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)

有人经历过同样的问题吗?什么可能是错的?请注意,我正在运行Rails 3.0.3,您可能也对我的Gemfile的内容感兴趣:

source 'http://rubygems.org'
gem 'rails', '3.0.3'
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'mysql2'
gem 'legacy_data'
gem 'resources_controller', :git …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails-3

132
推荐指数
5
解决办法
3万
查看次数

NoMethodError:升级到rake 11后的未定义方法`last_comment'

rake我运行任何任务时,我得到:

NoMethodError:未定义的方法`last_comment'for

之后bundle update推出了新版本的rake版本11.0.1.

$ grep rake Gemfile.lock
       rake
       rake (>= 0.8.7)
     rake (11.0.1)
       rake
$ bundle update
$ bundle exec rake db:drop # any rake task
Run Code Online (Sandbox Code Playgroud)

NoMethodError:#Rake :: Application:0x007ff0cf37be38>未定义的方法`last_comment'

版本

  • Rails 3.2.11
  • 耙子11.0.1

rake ruby-on-rails ruby-on-rails-3

127
推荐指数
5
解决办法
4万
查看次数

你已经激活了rake 0.9.0,但你的Gemfile需要rake 0.8.7

我正在尝试运行rails项目

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Run Code Online (Sandbox Code Playgroud)

如果我这样做:"捆绑安装"

但我得到了

You have already activated rake 0.9.0, but your Gemfile requires rake 0.8.7
Run Code Online (Sandbox Code Playgroud)

在做的时候

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails

122
推荐指数
7
解决办法
6万
查看次数

如何从rails测试套件运行单个测试?

如何从rails测试套件中运行单个测试?

rake test ANYTHING 似乎没有帮助.

rake unit-testing ruby-on-rails

115
推荐指数
7
解决办法
6万
查看次数

Rake的"环境"任务是什么?

根据" 自定义佣金任务 ":

desc "Pick a random user as the winner"
task :winner => :environment do
  puts "Winner: #{pick(User).name}"
end
Run Code Online (Sandbox Code Playgroud)

据我所知,:winner => :environment意思是"做environment之前winner".但是什么environment?我应该什么时候使用它?

我试过rake -T,但在列表中我找不到environment.

rake ruby-on-rails

112
推荐指数
3
解决办法
6万
查看次数

将vs logger放入rails rake任务中

在rake任务中,如果我使用puts命令,那么我在控制台上看到输出.但是,在生产中部署应用程序时,我不会在日志文件中看到该消息.

但是,如果我说Rails.logger.info然后在开发模式下,我在控制台上看不到任何内容.我需要去日志文件和尾部.

我理想情况下喜欢使用Rails.logger.info并在rake任务中的开发模式下,logger的输出也应该发送到控制台.

有没有办法实现这一目标?

rake ruby-on-rails

107
推荐指数
5
解决办法
5万
查看次数

Rails和PostgreSQL:角色postgres不存在

我在我的Mac OS Lion上安装了PostgreSQL,正在开发一个rails应用程序.我使用RVM将所有内容与其他Rails应用程序分开.

出于某种原因,当我第一次尝试迁移数据库时,rake无法找到postgres用户.我收到了错误

 FATAL:  role "postgres" does not exist
Run Code Online (Sandbox Code Playgroud)

我有pgAdmin所以我可以清楚地看到数据库中有一个postgres用户 - 实际上是管理员帐户 - 所以我不知道还能做什么.

我在某处读过有关PostgreSQL问题的人,因为它安装了哪条路径,但是如果它找不到db那么我认为我不会那么远.

postgresql rake ruby-on-rails

104
推荐指数
6
解决办法
9万
查看次数