Ruby on rails 首先在Rails中建模还是迁移?

Ruby on rails 首先在Rails中建模还是迁移?,ruby-on-rails,Ruby On Rails,我想知道,我应该先在Rails中创建模型还是迁移 我一直在关注BDD,首先测试,然后是实际代码。这给了我从上到下的洞察力 我听一些人说:首先是模型和它们的关联,然后迁移来为它们创建数据库。迁移/表适应模型,而不是相反 那么,这是否意味着在这里也采用自顶向下的方法是明智的,首先是模型(关联、验证),然后是迁移?如果您使用Rails附带的模型生成器,那么模型和迁移通常是一步创建的。我不知道您所说的“迁移/表采用模型,而不是相反”是什么意思。表是模型存储其数据的地方,因此两者都是完整的。由于没有迁移的

我想知道,我应该先在Rails中创建模型还是迁移

我一直在关注BDD,首先测试,然后是实际代码。这给了我从上到下的洞察力

我听一些人说:首先是模型和它们的关联,然后迁移来为它们创建数据库。迁移/表适应模型,而不是相反


那么,这是否意味着在这里也采用自顶向下的方法是明智的,首先是模型(关联、验证),然后是迁移?

如果您使用Rails附带的模型生成器,那么模型和迁移通常是一步创建的。我不知道您所说的“迁移/表采用模型,而不是相反”是什么意思。表是模型存储其数据的地方,因此两者都是完整的。

由于没有迁移的模型是无用的,请继续使用模型生成器(同时使用两者),但无论如何,为了测试模型,您必须创建db模式。

最佳做法是首先创建迁移,因为这样您就不会忘记,您必须将迁移代码签入到源代码管理系统,以便团队中的其他人使用。但是,在现实中,首先从模型开始更容易。

从技术上讲,使用BDD、TDD红-绿重构原则,您将首先创建规范或功能

describe MyModel do
  it "should exist"
end
然后运行测试并让它失败,因为您没有模型MyModel

class MyModel< ActiveRecord::Base
end
classmymodel

然后编写模型代码,然后再次运行测试。这次它将失败,因为没有具有该模型名称的表名,此时您将编写迁移。运行迁移后,您应该能够处于绿色(在我的rspec示例中为挂起状态),因为规范刚刚被删除。

单词“stub”是什么意思?stub这个词的意思是,当您运行规范时,规范
它“应该存在”
将返回挂起(现在我编辑了代码),也就是去掉这个方法。真正意义上的存根是“伪造”方法的一种方式。