2011-07-02 30 views
0

我有兩個表:Members and Addresses。我怎樣才能將這兩個表格合併到我的模型中,以便我可以將所有列合併在一起?例如,成員有一個名爲position的列,Addresses有一個名爲street的列。我怎麼能這樣做,以便我可以在同一個虛擬表中有位置和地址。這是否有合併功能?Rails合併表

回答

0

不知道爲什麼你需要創建一個單獨的模型,你可以使用基本的Ruby構建了這一點:

我假設Member有一個名爲address_id列,這是一個成員belongs_toAddress。這會自動爲你加入聯合。

因此,所有你需要做的是這樣的:

class Address < ActiveRecord::Base 
end 

class Member < ActiveRecord::Base 
    belongs_to :address 
end 

member = Member.create(:address => Address.find(123)) 

如果你想獲得的地址,只是在位置字段,然後去:

member = Member.find(456) 
position = member.address.position 

或者是:

Member.joins(:address).select("members.position, addresses.street") 

不知道你要做什麼,但如果它是非常具體的東西,你也可以嘗試創建一個在你的數據庫中查看,然後爲它創建一個模型,將它當作普通表格對待。

+0

基本上,當我的網站填寫訂單時,您必須填寫業務地址,然後填寫業務中每個成員的地址。我認爲如果我這樣做的話可能會少一些多餘的......你是否同意我現在只是在使用不好的練習? – Jake

+0

如果你在Rails中很難做到這一點,你可能不會像Rails希望你那樣做。我會用最簡單的方法。你可能真正想要的是has_and_belongs_to_many或has_many:through關係。我仍然不確定你想要完成什麼。 – Dex