在一个命令中编辑Rails迁移文件

时间:2012-12-31 08:10:27

标签: ruby-on-rails bash shell

这实际上是一个shell脚本问题,但与rails有关。

我创建了一个像这样的Rails迁移:

~/dropbox/rails/f6$ rails g migration ModifyWord

然后Rails创建迁移脚本,并在控制台上报告该名称:

~/dropbox/rails/f6$ rails g migration ModifyWord
      invoke  active_record
      create    db/migrate/20121231080052_modify_word.rb

然后我使用vi编辑迁移文件,如下所示:

~/dropbox/rails/f6$ vi db/migrate/20121231080052_modify_word.rb

我希望能够将vi filename 作为单个命令执行,可能通过shell脚本将其别名添加到我的.bash_rc中。

也就是说,我会在迁移后运行命令,它会查看报告的文件名。

关于我应该如何处理的任何建议?

根据MichaëlWitrant的建议,我已将别名添加到我的bash配置文件中。

  • cm 以捕获上次创建的迁移文件
  • vm 到vi上次创建的迁移文件

    alias cm ='cat ls db/migrate/*.rb | tail -n 1'

    alias vm ='vi ls db/migrate/*.rb | tail -n 1'

2 个答案:

答案 0 :(得分:3)

因为它以时间戳开头,所以它应该始终是按字母顺序排列的最后一个文件所以我只是做这样的事情:

vi `ls db/migrate/*.rb | tail -n 1`

答案 1 :(得分:2)

你熟悉这个:

rails generate migration AddDetailsToProducts part_number:string price:decimal

将在迁移文件中生成此内容:

class AddDetailsToProducts < ActiveRecord::Migration
  def change
    add_column :products, :part_number, :string
    add_column :products, :price, :decimal
  end
end

因此,您无需单独编辑迁移文件。