如何在rails上的ruby中为模型添加一个简单的has_many关联?

时间:2012-08-10 11:07:14

标签: ruby-on-rails-3 associations rails-models

嗨,我在RoR中几乎是一个新手,这就是为什么我在过去三个小时或其他事情上被困在如此基本的东西上。

我跟着this问题,这使我相信要添加一个关联,我必须:

  • 创建模型(rails generate model1
  • 创建第二个模型(rails generate model2
  • 然后修改model1.rbmodel2.rb个文件,并分别在其中指定has_many :model2sbelongs_to :model1
  • 运行rake db:migrate

我认为这应该创建模型,数据库中各自的表,以及model1的model2表中的引用。但是,最后一部分还没有完成。

即使是指南也未提及添加关联所需的确切步骤。入门指南告诉您只需在模型文件中添加关联,并且“关联基础”指南告诉我关于关联。现在如何添加它们以便它们反映在数据库中。

谢谢!

2 个答案:

答案 0 :(得分:1)

在您的数据库迁移文件中,您必须手动添加外键,除非您在生成此类模型时指定model2具有model1_id:integer

rails generate model model2 model1_id:integer #Extra fields ...

在这里查看文档: http://guides.rubyonrails.org/command_line.html#rails-generate

答案 1 :(得分:0)

您需要执行以下步骤。如果你有两个型号 - 父母和子。

在父母的模型中,添加 has_many 关系。 在孩子中,添加 belongs_to 关系。

向子项添加一列以保存引用:

rails g migration add_parent_id_to_child parent_id:integer