Tag: 耙子

测试佣金任务

我正在开发一个依赖于许多自定义Rake任务的ROR应用程序。 测试它们的最佳方法是什么?

Rails – rake db:创建错误

我试图运行rake db:为mysql数据库创建,但得到错误 $ rake db:create rake aborted! undefined method `task’ for # 我运行–trace并获取信息 /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing’ /Users/lucasdobbins/rails_projects/sharebox/Rakefile:7:in `’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load_rakefile’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:495:in `raw_load_rakefile’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:78:in `block in load_rakefile’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:77:in `load_rakefile’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:61:in `block in run’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:59:in `run’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/bin/rake:31:in `’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/bin/rake:19:in `load’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/bin/rake:19:in `’ 这是我的database.yml文件 development: adapter: mysql encoding: utf8 […]

使用rake db:create创建Rails DB时出错

我试图让我的第一个“hello world”rails示例在我的OSX 10.6.3框中使用rails的入门指南 。 当我去执行第一个rake db:create命令(我正在使用mysql)时,我得到: simon@/Users/simon/source/rails/blog/config: rake db:create (in /Users/simon/source/rails/blog) Couldn’t create database for {“reconnect”=>false, “encoding”=>”utf8”, “username”=>”root”, “adapter”=>”mysql”, “database”=>”blog_development”, “pool”=>5, “password”=>nil, “socket”=>”/opt/local/var/run/mysql5/mysqld.sock”}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation) 我找到了大量的stackoverflow问题,通过以下建议解决了这个问题: validation用户和密码是否正确(我在我的开发箱上运行w / root没有密码) validation套接字是否正确 – 我可以捕获套接字,所以我认为它是正确的 validation用户是否可以创建数据库(如您所见,root可以连接并创建此数据库没问题) simon @ / Users / simon / […]

任务钩前耙

是否有直接的方法来修改Rake任务以在运行现有任务之前运行一些代码? 我正在寻找相当于增强的东西,它在任务的开始而不是结束时运行。 Rake::Task[‘lame’].enhance([‘i_run_afterwards_ha_ha’])

如何强制Rails加载所有模型?

Rails确实按需加载模型。 对于我正在编写的rake任务,我需要能够遍历所有ActiveRecord::Base实例(可以使用ActiveRecord::Base.send(:subclasses) )。 但是,为了使上述工作,它们必须已经加载。 有人知道强制所有模型加载的方法吗? 理想情况下,我不想通过app/models因为我想要捕获插件添加的模型。

在rake任务中打印到屏幕

我有一个长期的rake任务。 我不时地在屏幕上打印一个更新,让我知道任务的进展情况。 puts “Almost there…” 我的问题是所有的puts语句似乎都在某处缓冲,直到任务完成后才会打印到屏幕上。 此时,它们将立即打印出来。 有什么方法可以在任务运行时强制打印它们吗?

有没有办法知道当前的佣金任务?

是否有可能知道ruby中当前的rake任务: # Rakefile task :install do MyApp.somemethod(options) end # myapp.rb class MyApp def somemetod(opts) ## current_task? end end 编辑 我问的是任何可以查询的环境变量全局变量,因为我想让一个应用程序智能化rake,而不是修改任务本身。 我正在考虑让应用程序在rake运行时表现不同。

是否可以获取命名空间中所有可用rake任务的列表?

是否可以从rake任务中获取命名空间中的任务列表? 一种编程’rake -T db’?

Rails3设计未定义的方法`confirmation_url’

我似乎为我的用户身份validation设置了Devise,并设置了:确认选项。 当我在浏览器中运行它时,一切似乎运行良好,我注册,转到我的rails s控制台中的服务器日志中显示的确认URL。 但是,当我尝试将以下内容添加到我的db / seed.rb时 User.create!(:username => ‘haar’, :email => ‘haar@example.com’, :password => ‘password’, :password_confirmation => ‘password’) 并运行rake db:setup –trace 我收到以下错误: rake aborted! undefined method `confirmation_url’ for #<#:0x1062f6618> /Users/haar/Dropbox/Websites/TenOutOfTen/app/views/devise/mailer/confirmation_instructions.html.haml:4:in `_app_views_devise_mailer_confirmation_instructions_html_haml___1737567023_2199377480_0′ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.8/lib/action_view/template.rb:135:in `send’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.8/lib/action_view/template.rb:135:in `render’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.8/lib/active_support/notifications.rb:54:in `instrument’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.8/lib/action_view/template.rb:127:in `render’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.8/lib/action_view/render/rendering.rb:59:in `_render_template’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.8/lib/active_support/notifications.rb:52:in `instrument’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.8/lib/active_support/notifications/instrumenter.rb:21:in `instrument’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.8/lib/active_support/notifications.rb:52:in `instrument’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.8/lib/action_view/render/rendering.rb:56:in `_render_template’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.8/lib/action_view/render/rendering.rb:26:in `render_without_haml’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/haml-3.1.3/lib/haml/helpers/action_view_mods.rb:13:in `render’ /Users/haar/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.8/lib/abstract_controller/rendering.rb:115:in `_render_template’ […]

如何重命名或移动Rails的README_FOR_APP

当我在我的Rails应用程序根目录中运行rake doc:app时,使用/doc/README_FOR_APP作为主页生成API文档。 我想在该文件中添加一个.rdoc扩展,以便在GitHub上正确呈现。 更好的是,我想将它移动到应用程序根目录( /README.rdoc )。 有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile执行此操作? 是否有某些地方可以查找可以修改的主页文件的名称? 或者我是否必须编写新的Rake任务? 额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么? 为什么不只是一个?