2013-01-24 122 views
0

不知道我是否正确执行此操作。有两种型号:将属性belongs_to添加到模型

class Team < ActiveRecord::Base 
    attr_accessible :city, :name, :division_id 
    belongs_to :divison 
    has_many :players 
end 

class Division < ActiveRecord::Base 
    attr_accessible :name 
    has_many :teams 
end 

而对于迁移:团队包括foreign_key

create_table :teams do |t| 
    t.string :name 
    t.string :city 
    t.integer :division_id 
    t.foreign_key :division, dependent: :delete 

    t.timestamps 
end 

在我Teams指数的看法,我想为每个团队添加division名。获取ID很简单,我只是使用<%= team.division_id %>然而,我不知道该怎么做才能获得分区名称。

我尝试添加分工,每个团队:

@teams.each do |team| 
    team.division = Division.find(team.division_id) 
end 

但这个失败,他说:undefined method 'division=' for #<Team:0x3cf2df0>。我甚至不确定这是否是正确的方式去做这件事,或者如果我过于复杂的事情。

+1

<%= team.division.name%>将会工作。 – VenkatK

回答

2

既然你的关系,你应该能够只是做

team.division.name 

而且,你有一个错字在你的模型(你就永远不会错过这种错误的静态类型语言如在Ruby中你必须编写测试,大量测试

belongs_to :divison 
+0

Ahhhh,这就是为什么我没有通过团队获得分部数据的原因。我没有想到,我试图用一些可怕的控制器循环强制它。谢谢! –

+0

@NickBrown:不要忘记接受有用的答案:) –

+0

对不起,没有忘记,只是锁定我,因为你很快回答了! –

相关问题