这是我的第一个问题,我正在寻找一个类似的问题但是没有找到它,我开始在轨道上学习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
答案 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。