2

我有两个 Ruby 文件:

db/migrate/20120920180336_create_admin_pages.rb
db/migrate/20120920150716_devise_create_users.rb

此文件中有一个常量变量:_create_admin_pages.rb

如何在文件中找到它并使以下命令正常工作?

gsub_file "db/migrate/*_create_admin_pages.rb", "t.boolean :published", "t.boolean :published, :default => false"
4

2 回答 2

2
ruby -pe 'gsub("t.boolean :published", "t.boolean :published, :default => false")' < db/migrate/*_create_admin_pages.rb

Ruby 可以使用多个选项运行。这里的-pe选项(实际上是两个选项)让 Ruby 执行这个循环:

  • 直到不再输入:
  • 读取一行输入,
  • -pe在作为代码之后运行字符串,
  • 打印结果。

全部使用隐式变量$_,最后读取的行。

于 2012-09-20T18:47:28.607 回答
0

你可以试试这个:

gsub_file Dir['db/migrate/*_create_admin_pages.rb'].first, "t.boolean :published", "t.boolean :published, :default => false"
于 2016-03-19T05:44:15.407 回答