[英]What is the common way to define models in Rails application?
到目前为止我为RoR看到的所有教程都向我展示了生成如下模型:
rails generate User name:string placeofbirth:string
这会为模型生成一个类,如果我应用某种验证,则只实际引用一个属性。
所以我的问题是,在创建模型时如何使用“代码”第一种方法。 或者它是直接在纸上找到你想要的属性的轨道方式,运行带有你想要的每个属性的generate命令和它的类型,然后运行rake db:migrate命令?
我喜欢这个主题的一些更有效的模式,因为到目前为止我看到的方式似乎太空了。
是的,这是rails方式 - 迁移首先出现并生成代码和数据库 - 模型类检查数据库以查看哪些字段并通过方法访问。
如果要在模型类中使用属性名称和类型获取一些注释,可以执行gem install annotate_models
。
请参阅此处以获取示例: https : //github.com/ctran/annotate_models
通常,当您开发一些数据库支持的Web应用程序时,您事先知道数据库设计(表的名称,这些表中的列的名称以及不同表之间的关联)。
正如maarons在他的回答中所提到的,Rails使用Active Record模式。 您的模型是表示数据库中的表的类,模型类的实例是该表中的一行,对象的不同属性表示同一表中不同列下的值。
通常,在创建模型时,您将创建一个表示数据库中某个表的类。 在创建模型时,您还将在数据库中创建一个表。 这意味着知道该表中的表名和列名。
因此,要回答您的问题,您必须知道暂时需要的所有列,这些列将在您的表中。 因此可用作模型对象的属性方法。 在生成此模型时,您可以在rails生成器生成的迁移中指定要添加到表中的这些列。 通常每个人都这样做。
您可以通过在app/models/
下创建类而不运行rails模型生成器来创建类,而不是从ActiveRecord::Base
继承它。 随着您在开发过程中的进展,您可以通过$ rails generate migration MigrationName
, $ rails generate migration MigrationName
并创建表,并根据需要使用[add_column][2]
向该表添加列。 为此模型创建表后,您必须从ActiveRecord::Base
继承该模型,以便您可以在应用程序中获得所有Rails魔法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.