2013-10-27 47 views
0

这是我的第一个问题,我已经寻找类似的问题,但说好的发现了它,我开始学习Ruby on Rails和我也跟着当然,对于具有的has_many如何添加has_many关联?

我通过创建我的班队创建foreing键说。

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

,我也创建了我的类体裁以同样的方式 这个订单生成像

class Band < ActiveRecord:Base 
end 

类,以便修改我的文件Band.rb这样

class Band < ActiveRecord:Base 
    has_many :Genres 
end 

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

a = Band.new 

一个处理不当流派atribut

+0

需要查看更多代码。您的流派是否与乐队拥有belongs_to关联?你收到什么错误? – DashControl

+0

你用'rake db:create'和'rake db:migrate'创建了数据库吗? –

回答

0

编辑您的band.rb文件:

class Band < ActiveRecord:Base 
    has_many :genres 
end 

重装,一切都应该是从那时起罚款。

0

首先请确保你的类型的型号,那么

belongs_to :band 

另外,在你带模型小写,因为一个流派是属于你需要有一个带你HAS_MANY像这样

has_many :genres 

关系在你的类型表中,band_id将指向类型所属的乐队。

,那么你可以很容易地找到乐队的band.In你控制器,你可以找到一个带

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

,并检查设置,然后才能做的流派流派

@genre = @band.genres 

这会给你带来正确的流派。

然而,这似乎更像是一种情况,一个乐队的has_many:风格和流派的has_many:bands.In这种情况下,你可能想使用一个has_and_belongs_to_many relationship.You可以找到在轨关联的更多细节指导这里:http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association

如果你需要创建一个单独的表,其中每一流派和乐队将指向对方has_and_belongs_to_many关系走,所以你可以关联他们很容易

0

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