2010-07-28 166 views
0

我是新來的鐵軌,並閱讀此guide到目前爲止所有的信息。ActiveRecord協會模型

我有一個簡單的場景,並希望確定我的關聯是否能正常工作。

場景: User日誌中 - >設置了許多groups - 每組>有許多employees

User模型:

class User < ActiveRecord::Base 
    has_many :groups 
end 

Group模型:

class Group < ActiveRecord::Base 
    belongs_to :user 
    has_many :employees 
end 

Employee模型:

class Employee < ActiveRecord::Base 
    has_many :groups 
    belongs_to :group 
end 

問題

  • 將這項工作對於我所提到的情況?
  • 我很困惑如何獲得所有EmployeesUser。那會是什麼代碼?
  • 如果我需要所有這些模型的典型CRUD,那麼會在我的行動?索引/創建/更新/銷燬?有人能指點我一個很好的指導行動嗎?

回答

0

我也喜歡過的has_many -

class User < ActiveRecord::Base 
    has_many :groups 
    has_many :employees, :through=>:groups 
end 

然後你可以去:

user = User.find(23) 
user.employees.do_something 

否則,您可以遍歷您的組及其員工(有點難看,但將工作)

User.first.groups.each{|group| group.employees.each{|employee| puts employee.name}} 
0

你在一起,在大多數情況下,但我認爲你需要看看has_and_belongs_to_many(你會經常看到簡稱的habtm。)索引,創建,更新和銷燬將是您的CRUD清單Ruby on Rails。至於一個很好的指南,我喜歡戴維托馬斯的敏捷Web開發隨着Rails。 (當我選擇一個新主題時,我喜歡書籍 - 電子或其他)。它可以通過The Practical Programmers在線獲得。關於「什麼是好指南」的問題相當主觀,所以要提醒注意。