Ruby on rails Rails迁移表
据我所知,您可以在db/migrations中指定模型字段数据类型。这对我来说是新的,就像在Django中一样,您可以直接在模型类中指定您的模型字段数据类型。我这样想对吗?这是rails中的常见做法,还是我只是在使用变通方法 另外,如何在此db/migrations文件中指定表关系。例如,如果我有一个称为a类的模型 我有另一个叫做B类的模型,我想和a类建立一对多的关系。我就是这么做的吗Ruby on rails Rails迁移表,ruby-on-rails,Ruby On Rails,据我所知,您可以在db/migrations中指定模型字段数据类型。这对我来说是新的,就像在Django中一样,您可以直接在模型类中指定您的模型字段数据类型。我这样想对吗?这是rails中的常见做法,还是我只是在使用变通方法 另外,如何在此db/migrations文件中指定表关系。例如,如果我有一个称为a类的模型 我有另一个叫做B类的模型,我想和a类建立一对多的关系。我就是这么做的吗 class ClassA < ActiveRecord::Migration def change
class ClassA < ActiveRecord::Migration
def change
create_table :projects do |t|
t.classB :name
end
end
end
ClassA
如何验证迁移文件和模型文件没有任何语法错误。据我所知,我只是运行rake db:migrate,但如果我不希望在文件中指定字段数据类型时替换迁移文件,该怎么办?创建新模型时,rails会创建shema迁移文件和模型。 在迁移文件中指定列。可以在这里添加一些代码,但应该尽可能少地添加。对于up和down,可以在这里添加/删除列,添加db索引等等 在您的模型中,您定义了您的关系
所属
,有许多
,等等。您的范围
用于您的表,ofc用于您的模型的方法。您的模型继承表列,因此您可以直接访问它们
我不知道Django,这是rails中的常见做法
您可以在此处查看关系和其他良好信息:当您创建新模型时,rails将创建您的shema迁移文件和模型。 在迁移文件中指定列。可以在这里添加一些代码,但应该尽可能少地添加。对于up和down,可以在这里添加/删除列,添加db索引等等 在您的模型中,您定义了您的关系
所属
,有许多
,等等。您的范围
用于您的表,ofc用于您的模型的方法。您的模型继承表列,因此您可以直接访问它们
我不知道Django,这是rails中的常见做法
关系和其他好的信息,你可以在这里查看:好的,所以总而言之,你似乎有三个问题: 1.:据我所知,您可以在db/migrations中指定模型字段数据类型。[…]我这样想对吗?这是rails中的常见做法,还是我只是在使用变通方法 是的,你是对的。字段数据类型不显示在模型内部,只显示在迁移中 顺便说一下:我很少发现自己手动编写迁移文件。如果使用rails命令,它将自动生成迁移文件。例如,如果您使用
rails g model User first\u name:string last\u name:string
这将创建一个名为User的模型,以及一个迁移,该迁移将创建一个users表,其中包含id
、first\u name
、last\u name
和timestamp字段。如果您想在以后添加或删除列,有一个很好的技巧;快跑
rails g迁移将字段添加到用户字段名称:字段类型
或
rails g迁移从用户字段名称中删除字段
按您认为合适的方式替换字段名称
、字段类型
和用户
。此命令将为您创建一个迁移以添加或删除字段,因此您不必手动写入这些字段
2.:另外,如何在此db/migrations文件中指定表关系
你没有。Rails通过诸如has\u many、belishing\u to、has\u和\u belishing\u to等关联方法为您处理此问题。请看一看。在数据库端,您需要做的一件事是为一对多关系添加外来id列,或者为多对多关系创建联接表。例如,如果您有一个用户表和一个图片表,并且每个图片都属于一个用户,那么在您的用户模型中,您将写入具有多个:图片
,在您的图片模型中,您将写入属于:用户
,并且在您的图片表中,您需要一个名为用户id
的字段,该字段的类型为整数
3.:如何验证迁移文件和模型文件没有任何语法错误
你也不知道。您只需运行rakedb:migrate
,如果出现故障,它将告诉您发生故障的位置和原因。如果您的模型有语法错误,它将告诉您何时启动服务器,何时运行测试,或者至少何时在某处使用它(例如,当您调用模型的方法时)。如果您指的是如何验证模型的数据,那么这是一个完全不同的问题-请参阅,它详细解释了检查存在性、唯一性、长度等的验证。好的,那么总体而言,您似乎有三个问题:
1.:据我所知,您可以在db/migrations中指定模型字段数据类型。[…]我这样想对吗?这是rails中的常见做法,还是我只是在使用变通方法
是的,你是对的。字段数据类型不显示在模型内部,只显示在迁移中
顺便说一下:我很少发现自己手动编写迁移文件。如果使用rails命令,它将自动生成迁移文件。例如,如果您使用
rails g model User first\u name:string last\u name:string
这将创建一个名为User的模型,以及一个迁移,该迁移将创建一个users表,其中包含id
、first\u name
、last\u name
和timestamp字段。如果您想在以后添加或删除列,有一个很好的技巧;快跑
rails g迁移将字段添加到用户字段名称:字段类型
或
rails g迁移从用户字段名称中删除字段
替换字段名称
,字段类型class CreateProducts < ActiveRecord::Migration
def change
create_table :products do |t|
t.string :name
t.text :description
end
end
end