2011-06-19 36 views
1

我有两个型号:如何使协会工作

class Group < ActiveRecord::Base 
    belongs_to :sites 
end 

class Site < ActiveRecord::Base 
    has_many :groups 
end 

我可以得到属于网站的所有组:

Site.find(1).groups 

但我不能让网站属于某一组:

$ Group.find(1) 
#<Group id:1 ...., site_id: "1"> 
$ Group.find(1).sites 
nil 

为什么?

+2

它不应该是'belongs_t o:网站? –

+0

是的,谢谢。你可以创建答案,我会结束答案? – demas

+0

勾选Atzoya。没有必要有相同内容的答案,我会活下来没有收到15分。 ;) –

回答

2

大概是因为集团属于1应该是单数形式

$ Group.find(1).site 

同时也可作为马塞尔Jackwerth说,belongs_to的也应该是单数形式

class Group < ActiveRecord::Base 
    belongs_to :site 
end 
+0

irb(main):015:0> Group.find(1).site NoMethodError:未定义的方法'网站'为#<组:0x2bd3f10> – demas

+0

但是它对Marcel的评论将是有用的。 – demas

-1

如果没有工作你总是可以添加下面的公共方法group.rb

def site 
    Site.find self.site_id 
end