民间,
我正在创建一个应用程序,其中我的问题空间中有两个实体。一个实体是“生物学家”,另一个实体是“实验”,现在一个生物学家可以进行多次实验,每个实验都可以有很多生物学家。
我知道如何使用命令行生成器创建模型和路径:
rails generate scaffold Biologist name:string expertise:string last_pub:text
添加关联的正确方法是什么?它是否会在生成后更新模型代码?我不清楚的是,如果我添加一个“belongs_to”关联后期生成,如何在不运行迁移的情况下在数据库模式中反映出来?在上面的例子中,如果“实验”属于“生物学家”,那么“生物学家”表中将有一个外键,如果我在模型类后期生成中添加关联,将如何创建。我对rails非常陌生,所以如果这是一个天真的问题我会道歉。
答案 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关系在模型中执行此操作。