2013-08-28 36 views
0

我有2個表導軌的has_many給同桌

ACCRELATIONS 
"ID" 
"ACCDETAILS" 
"ACCRELATIONSBIKEID" 
"ACCRELATIONSCARID" 
"ACCRELATIONSPERSONID" 

ACCPEOPLE 
"ID" 
"FIRSTNAME" 
"LASTNAME" 
"ACCRELATIONSID" 

的關係應該像

class ACCPEOPLE < ActiveRecord::Base 
has_many :ACCRELATIONS, :foreign_key => 'ACCRELATIONSBIKEID' 
has_many :ACCRELATIONS, :foreign_key => 'ACCRELATIONSCARID' 
has_many :ACCRELATIONS, :foreign_key => 'ACCRELATIONSPERSONID' 

這是否軌邏輯的工作?因此,基本上可以在這三種關係中的任何一種上加入「ACCPEOPLE」記錄。

編輯====

謝謝!我用你答案中的邏輯來修正現在的關係。將3個關係作爲belongs_to添加到另一個表中完成。

回答

1

您的關聯名稱應該是唯一的。如果你給他們同一個名字,你如何訪問這些關聯?

class AccPeople < ActiveRecord::Base 
has_many :bike_accelerations, :foreign_key => 'ACCRELATIONSBIKEID', :class_name => "<your_classname>" 
has_many :car_accelerations, :foreign_key => 'ACCRELATIONSCARID', :class_name => "<your_classname>" 
has_many :person_accelerations, :foreign_key => 'ACCRELATIONSPERSONID', :class_name => "<your_classname>" 

將您的關聯重命名爲上面的。

請按照rails naming conventions

+0

我正在使用現有的數據庫結構。我同意,這是不理想的,但我需要使鐵軌工作。 – user1438150

+0

您仍然可以遵循關聯名稱的導軌約定 – usha

+0

謝謝我可以證實此作品 – user1438150