相关疑难解决方法(0)

覆盖rails的默认rake任务

我有一个Rails 2.2项目,我想在其中覆盖rake db:test:prepare任务的功能.我认为这会起作用,但它没有:

#lib/tasks/db.rake
namespace :db do
  namespace :test do
    desc "Overridden version of rails' standard db:test:prepare task since the schema dump used in that can't handle DB enums"  
    task :prepare => [:environment] do
      puts "doing db:structure:dump"
      Rake::Task['db:structure:dump'].invoke
      puts "doing db:test:clone_structure"
      Rake::Task['db:test:clone_structure'].invoke
    end   
  end
end
Run Code Online (Sandbox Code Playgroud)

我得到了标准任务的行为.如果我将任务的名称更改为:prepare2然后执行rake db:test:prepare2,那么它可以正常工作.我从中得出的自然结论是,我的rake任务在内置的Rails 之前被定义,因此我的标准:prepare任务会覆盖我的rake 任务.

任何人都可以看到我如何解决这个问题?我宁愿覆盖它而不是使用新任务.谢谢,最多

rake ruby-on-rails

71
推荐指数
3
解决办法
2万
查看次数

在不删除测试数据库的情况下运行Rails测试

只是想知道是否有办法在不丢弃数据库的情况下运行Rails测试.我目前只执行单元测试,并使用以下rake命令执行此操作:rake test:units.

我在这里先向您的帮助表示感谢!

以防这是相关的:

  • Rails 3
  • Ruby 1.8.7(MRI)
  • Oracle 11g数据库
    • ActiveRecord的-oracle_enhanced适配器

testing unit-testing ruby-on-rails oracle11g ruby-on-rails-3

8
推荐指数
3
解决办法
3231
查看次数

Ruby on Rails自定义迁移生成器

我正在创建一个与Active Record紧密集成的Rails gem.gem需要定义许多字段.例如:

class User < ActiveRecord::Base
  # requires 'avatar_identifier', 'avatar_extension', 'avatar_size'
  has_attached :avatar
end
Run Code Online (Sandbox Code Playgroud)

有可能有类似的东西:

rails g model user name:string avatar:attached
Run Code Online (Sandbox Code Playgroud)

导致:

create_table :users do |t|
  t.string :name
  t.string :avatar_identifier
  t.string :avatar_extension
  t.integer :avatar_size
end
Run Code Online (Sandbox Code Playgroud)

如果这是不可能的,任何方式:

create_table :users do |t|
  t.string :name
  t.attached :avatar
end
Run Code Online (Sandbox Code Playgroud)

生成多个字段?谢谢!

gem ruby-on-rails

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