16

伙计们,

我正在创建一个应用程序,我的问题空间中有两个实体。一个实体是“生物学家”,另一个实体是“实验”,现在一个生物学家可以有很多实验,每个实验可以有很多生物学家。

我知道如何使用命令行生成器创建模型和路由:

 rails generate scaffold Biologist name:string expertise:string last_pub:text

添加关联的正确方法是什么?生成后是否要更新模型代码?我不清楚的是,如果我在生成后添加“belongs_to”关联,那么它如何在不运行迁移或其他东西的情况下反映在数据库模式中?在上面的示例中,如果“实验”属于“生物学家”,那么“生物学家”表中将有一个外键,如果我在生成后的模型类中添加关联,它将如何创建。我对rails相当陌生,所以如果这是一个幼稚的问题,我深表歉意。

4

3 回答 3

51

我认为您正在寻找类似以下的内容:

rails g scaffold Biologist experiment:references

阅读Jose Valim 的这篇文章,他向您展示了如何执行上述操作,并从命令行添加 db 索引:

于 2013-02-19T14:34:47.060 回答
4

您必须创建迁移以biologist_id向表中添加列experiments,然后在模型中添加belongs_to :biologist关系。experiments

您可以在此处找到更多详细信息。

于 2013-02-19T14:28:18.903 回答
-1

我会为每个模型生成一个模型,然后创建一个连接表,因为你有一个多对多的关系。如果你正确地遵循约定,rails 应该理解给定连接表的关系。

一般来说,如果您需要修改活动记录关系,您应该在模型中使用 has_many 或 has_and_belongs_to_many 关系来完成。

于 2013-02-19T20:53:15.170 回答