下面是相關機型:可以手動管理關聯嗎?
用戶 產品 訂單
用戶可出售或購買產品 的訂單有買方,賣方和一個產品
我知道我能做到這與訂單和用戶之間的HABTM關係有關,但在我看來,在訂單表中放入以下列會更簡單:
:seller_id :buyer_id
並手動管理這些關係,因爲訂單隻能創建一次而且永遠不會編輯。然而,這看起來並不像Rails那樣,我想知道在HABTM關係中我是否在概念上丟失了某些東西。
下面是相關機型:可以手動管理關聯嗎?
用戶 產品 訂單
用戶可出售或購買產品 的訂單有買方,賣方和一個產品
我知道我能做到這與訂單和用戶之間的HABTM關係有關,但在我看來,在訂單表中放入以下列會更簡單:
:seller_id :buyer_id
並手動管理這些關係,因爲訂單隻能創建一次而且永遠不會編輯。然而,這看起來並不像Rails那樣,我想知道在HABTM關係中我是否在概念上丟失了某些東西。
不,它不是一個紅寶石般的方式,雖然你沒有編輯的順序一旦創建。
在模型中使用以下關係我認爲它會工作。沒有檢查,但
User.rb
has_many :users
has_many :purchase, :class_name =>Order, :foreign_key=>'buyer_id'
has_many :sells, :class_name =>Order, :foreign_key=>'seller_id'
Product.rb
belongs_to :user
has_many :orders
Order.rb
belongs_to :buyer, :class_name =>User, :foreign_key=>'buyer_id'
belongs_to :seller, :class_name =>User, :foreign_key=>'seller_id'
belongs_to :product
您應該使用Rails協會爲此。 has_many
協會是您的方案更好的選擇。
current_user.buys.create(:seller => u, :product => p)
current_user.buys
current_user.sells
謝謝,這是非常合情合理的:
現在,您可以按如下方式使用關聯。 – sosborn 2010-04-06 03:54:34