标签: rake

如何在Ruby脚本中运行Rake任务?

我有一个RakefileRake任务,我通常会从命令行调用:

rake blog:post Title
Run Code Online (Sandbox Code Playgroud)

我想编写一个多次调用Rake任务的Ruby脚本,但我看到的唯一解决方案是使用``(反引号)或system.

这样做的正确方法是什么?

ruby rake command-line-interface

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

当我运行rake:db migrate命令时出现错误"未初始化的常量CreateArticles"

我创建了一个模型ruby脚本/生成模型文章(简单enuff)

这是迁移文件create_articles.rb:

def self.up
  create_table :articles do |t|
    t.column :user_id, :integer
    t.column :title, :string
    t.column :synopsis, :text, :limit => 1000
    t.column :body, :text, :limit => 20000
    t.column :published, :boolean, :default => false
    t.column :created_at, :datetime
    t.column :updated_at, :datetime
    t.column :published_at, :datetime
    t.column :category_id, :integer
  end

def self.down
  drop_table :articles
 end
end
Run Code Online (Sandbox Code Playgroud)

当我运行rake:db migrate命令时,我收到一个错误rake中止!"未初始化的常量CreateArticles."

有谁知道为什么这个错误不断发生?

rake ruby-on-rails rails-migrations

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

从数据库中已有的数据创建种子文件

我正在使用Rails 3.0.3并且已经在数据库中拥有我的"类别"表的数据,但是想要从中创建种子文件.是否有任何rake任务将从此表中为我生成seeds.rb格式?

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

50
推荐指数
4
解决办法
3万
查看次数

Bundler :: GemNotFound:在任何来源中都找不到rake-10.3.2

我一直在使用Rails,它发回给我这个错误.请提出问题.谢谢你的帮助.我会用更好的问题更新这个问题,因为我不知道怎么问.

Bundler::GemNotFound: Could not find rake-10.3.2 in any of the sources
~/.rvm/gems/ruby-2.0.0-p451/gems/bundler-1.6.2/lib/bundler/spec_set.rb:92:in `block in materialize'
~/.rvm/gems/ruby-2.0.0-p451/gems/bundler-1.6.2/lib/bundler/spec_set.rb:85:in `map!'
~/.rvm/gems/ruby-2.0.0-p451/gems/bundler-1.6.2/lib/bundler/spec_set.rb:85:in `materialize'
~/.rvm/gems/ruby-2.0.0-p451/gems/bundler-1.6.2/lib/bundler/definition.rb:133:in `specs'
~/.rvm/gems/ruby-2.0.0-p451/gems/bundler-1.6.2/lib/bundler/definition.rb:178:in `specs_for'
Show 28 more lines
Run Code Online (Sandbox Code Playgroud)

我相信我的佣金是最新版本

的Gemfile

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.1'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails

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

在Rspec测试中运行Rake任务

我正在构建一个集成测试套件,我需要有一个逻辑,我需要一个干净的数据库.如何在我db:test:purge的一个测试中运行任务?

我正在使用:ruby 1.9.2,rails 3.0.9,rspec 2.6

ruby tdd rake rspec ruby-on-rails-3

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

如何获得当前rake任务的PID?

我正在将一条收割机线放入一个耙子任务,以杀死一些额外产生的红宝石任务,因为它们偶尔会爬行.

system "ps aux | grep 'namespace:taskname' | grep ruby | grep -v grep | awk '{print $2}' | xargs kill -9; echo 'Reaped old namespace:taskname processes.'"
Run Code Online (Sandbox Code Playgroud)

我想补充grep -v $PID_OF_CURRENT_TASK一下,只是为了确保我不会杀死正在运行的当前任务.

我如何获得PID?

ruby shell rake

49
推荐指数
1
解决办法
2万
查看次数

什么是耙子以及如何在轨道中使用?

一周前我已经在Ruby on rails上开始了我的教程我有一个疑问请指导我们....

什么是耙子以及如何在轨道中使用?

rake ruby-on-rails

49
推荐指数
2
解决办法
4万
查看次数

How to explicitly fail a task in ruby rake?

Let's say I have a rakefile like this:

file 'file1' => some_dependencies do
  sh 'external tool I do not have control over, which sometimes fail to create the file'
  ???
end

task :default => 'file1' do
  puts "everything's OK"
end
Run Code Online (Sandbox Code Playgroud)

Now if I put nothing in place of ???, I get the OK message, even if the external tool fails to generate file. What is the proper way to informing rake, that 'file1' task has failed and it should abort …

ruby rake

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

Model.reset_column_information不会在rails迁移中重新加载列

我正在使用Rails 3.2并进行包含以下代码的迁移:

add_column :users, :gift_aid, :integer, :default => 2
# reset columns
User.reset_column_information

... code here to load legacy data from sqlite3 database ...

# now create a user with the loaded column data
user = User.create( ...other cols..., 
                    :gift_aid => migrated_gift_aid_column_data,
                    ...other cols... )
Run Code Online (Sandbox Code Playgroud)

unknown attribute: gift_aid在运行迁移时得到了.User.column_names在调用之前和之后显示相同的列表reset_column_information.

奇怪的是,当我手动删除mysql中的列并重新运行迁移时,它按预期工作.从第一次迁移开始,再次使用空数据库并且它不起作用,因此它与运行所有迁移而不是单个迁移有关.

我之前有几个关于User模型的迁移,包括reset_column_information两者都可以正常工作.

我真的在这个问题上摸不着头脑 - 任何人都有任何想法

migration rake activerecord ruby-on-rails ruby-on-rails-3.2

47
推荐指数
1
解决办法
2万
查看次数

Rake vs. Thor用于自动化脚本?

我希望自动执行以下操作:

  • 使用预先选择的数据库创建一个新的Ruby on Rails应用程序,Git初始化它,创建一个Heroku项目,提交所有文件等.
  • 通过SSH将文件夹中的所有文件上传到另一台计算机,但不要覆盖文件.
  • 升级Ubuntu,通过apt-get安装所有基本软件包.

根据我的理解,这方面的工具是Rake和Thor,但是,我应该使用哪一个?

在我看来,耙子更具事实性和受欢迎程度.我听过有人推荐Thor.

这些如何在破败中相互对立?

ruby rake thor

46
推荐指数
2
解决办法
1万
查看次数