使用rails的Rails怪异行为会破坏迁移

时间:2015-10-12 16:36:21

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 rubygems

在rails上工作时,我注意到了rails迁移的以下行为。我不知道它是否是预期的行为。有人对此有任何想法吗?

第1步 - 我创建了迁移

rails g migration CreateCustomer

此命令的结果 -

  invoke  active_record
  create  db/migrate/20151012160803_create_customer.rb

第2步 - 现在我要撤消使用上述命令生成的代码。

rails d migration CreateCustomer

此命令的结果 -

  invoke  active_record
  remove  db/migrate/20151012160803_create_customer.rb

第3步 - 如果我再次运行第2步命令rails d migration CreateCustomer,我会在不同的rails版本上获得不同的结果

Rails 3.2.17的结果是 -

  invoke  active_record
  remove  migration.rb

Rails 4.0.0的结果是 -

  invoke  active_record
  remove  create_table_migration.rb

我的问题是为什么rails删除migration.rbcreate_table_migration.rb文件? rails真的删除了这个文件吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您要运行,请不要删除此文件:

import java.util.*; import javax.swing.JOptionPane; public class Divisors { public static void main(String[] args) { String n = JOptionPane.showInputDialog(null, "Enter a natural number"); Integer i = Integer.parseInt(n); int d = i - 1; int x = 2; Set<Integer> divisors = new HashSet<>(); while (x >= 2 && x <= d) { double y = i % x; if (y == 0) { divisors.add(x); x = x + 1; } else { x = x + 1; } } List<Integer> l = new ArrayList<>(divisors); JOptionPane.showMessageDialog(null, "The divisors of " + i + " are:\n" + l); } }

你会得到同样的错误,你看到的那两个文件名是Rails的核心文件create_table_migration.rb:

rails d migration SomeUnRealMigration

这不会影响您应用程序中的任何文件。