0

这确实是一个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文件名作为单个命令执行,也许是通过一个 shell 脚本,该脚本可以将别名添加到我的 .bash_rc 中。

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

关于我应该如何处理这个问题的任何建议?

解决方案

根据 Michaël Witrant 的建议,我已将别名添加到我的 bash 个人资料中。

  • cm to cat 最后创建的迁移文件
  • vm到 vi 最后创建的迁移文件

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

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

4

2 回答 2

3

由于它以时间戳开头,因此它应该始终是按字母顺序排列的最后一个文件,所以我只需执行以下操作:

vi `ls db/migrate/*.rb | tail -n 1`
于 2012-12-31T08:19:36.160 回答
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

因此,您不必单独编辑迁移文件。

于 2012-12-31T08:16:26.600 回答