使用ActiveRecord关联生成模型

时间:2013-02-19 13:54:58

标签: ruby-on-rails rails-activerecord

民间,

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

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

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

添加关联的正确方法是什么?它是否会在生成后更新模型代码?我不清楚的是,如果我添加一个“belongs_to”关联后期生成,如何在不运行迁移的情况下在数据库模式中反映出来?在上面的例子中,如果“实验”属于“生物学家”,那么“生物学家”表中将有一个外键,如果我在模型类后期生成中添加关联,将如何创建。我对rails非常陌生,所以如果这是一个天真的问题我会道歉。

3 个答案:

答案 0 :(得分:45)

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

rails g scaffold Biologist experiment:references

阅读Jose Valim的this article,他将向您展示如何执行上述操作,并从命令行添加db索引:

答案 1 :(得分:2)

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

您可以找到更多详情here

答案 2 :(得分:0)

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

通常,如果需要修改活动记录关系,则应使用has_many或has_and_belongs_to_many关系在模型中执行此操作。