如何添加has_many关联?

时间:2013-10-27 12:29:54

标签: ruby-on-rails

这是我的第一个问题,我正在寻找一个类似的问题但是没有找到它,我开始在轨道上学习ruby并且我遵循了一个用has_many创建外出键的课程

我创建了我的班级乐队。

rails g model Band name:string website:string email:string

我也以同样的方式创建了我的类Genres 此订单生成类似

的类
class Band < ActiveRecord:Base
end

所以我像这样编辑我的文件Band.rb

class Band < ActiveRecord:Base
    has_many :Genres
end

保存更改(Ctrl + S),当我尝试创建一个新的对象类Band

a = Band.new

a a genies atribut

3 个答案:

答案 0 :(得分:0)

将您的band.rb文件编辑为:

class Band < ActiveRecord:Base
    has_many :genres
end

重新加载,从那时起一切都应该没问题。

答案 1 :(得分:0)

首先确保你的音乐模型中有

belongs_to :band

同样在你的乐队模型小写中,你就像这样有很多关系

has_many :genres

由于一个流派属于一个乐队,你需要在你的流派表中有一个band_id,它将指向该流派所属的乐队。

然后你可以很容易地找到乐队的乐队。在你的控制器中你可以找到一个乐队

@band = Band.find(params[:id])

并检查您可以执行之前设置的类型

@genre = @band.genres

这将为您提供该乐队的正确流派。

然而,这似乎更像是乐队has_many:流派和流派has_many:band的情况。在这种情况下,您可能想要使用has_and_belongs_to_many关系。您可以在rails指南中找到关联的更多详细信息:{{ 3}}

如果您使用has_and_belongs_to_many关系,则需要创建一个单独的表格,其中每个流派和乐队将相互指向,以便您可以轻松地关联它们

答案 2 :(得分:0)

新方法不会在数据库中创建实际记录,您必须在实例上调用save。要创建关联类型,可以在已存在的Band实例上调用create_genre。