如何使用has_one约束生成模型

时间:2016-03-06 05:12:44

标签: ruby-on-rails

我想创建2个模型,其中一个属于另一个。我知道用于创建“belongs_to”另一个模型的generate命令,但我不知道如何让其他模型具有“has_one”。

我可以在generate命令中指定“has_one”吗?或者我可以在?

之后手动将其添加到模型文件中

这仍然让我感到困惑,因为“belongs_to”的孩子有外键,而“has_one”的父母没有任何东西。

这不是一对一的关系,所以不需要吗?

1 个答案:

答案 0 :(得分:6)

让我们用一些具体的术语作为例子。我们会说用户有一个个人资料。

要生成用户和个人资料,您可以使用:

rails generate model User email:string username:string
rails generate model Profile user:references about_me:text

所以是的,您必须将行has_one :profile添加到用户模型中。不,您不必将行belongs_to :user添加到配置文件模型中,因为这将为您添加。

关于你的上一个问题,我不确定你的意思。是的,这是一对一的关系,但您认为哪个部分不需要? has_one :profile行?

如果这是你不理解的部分,你就不能完全理解这条线给你的东西。它为User类添加了有用的方法,其中最重要的可能是@user.build_profile@user.profile。可能看起来不是很多,但只添加一行代码即可。