编写触发“生成”命令的代码

时间:2011-06-27 16:00:10

标签: ruby-on-rails ruby-on-rails-3 listener execute

在Rails中的哪个文件中,我需要放置我想要执行的代码,例如当用户键入

rails g migration doSomethingFancy

我的目的是在排序日志文件中跟踪这些命令。我注意到this relevant question,但似乎在Rails3中不推荐使用此方法(创建生成文件不起作用)。你知道在Rails3中获得类似结果的任何方法吗?

1 个答案:

答案 0 :(得分:1)

嗯,你当然可以通过编辑rails脚本文件来做类似的事情。

require 'rubygems'

version = ">= 0"

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
end

# This is the logging code
CMD = "#{$0} #{ARGV.join(' ')}\n"
File.open('/absolute-path/log/generate.log', 'a') {|f| f.write(CMD) }

gem 'rails', version
load Gem.bin_path('rails', 'rails', version)