2012-04-25 37 views
0

因此,繼承人什麼,我試圖做的:在軌道上的自定義查找字段3形式

我想一個領域,是基於文本的,「優惠券代碼」

嵌套形式

所以基本上f.text_field :coupon

但該值應該在coupons表到項目的關係,而不是由ID。

優惠券表可能看起來像

|ID| CouponCode | 
+--+------------+ 
|1 | a89sd9asda | 
+--+------------+ 

和我的主表看起來像

|ID| OrderTitle | Coupon | 
+--+------------+------------+ 
|1 | sdfsdfsdfd | a89sd9asda | 
+--+------------+------------+ 

是否有軌道的方式通過HAS_ONE鏈接這兩個和使用非ID字段?

+0

如果你的優惠券表只有一個ID和一個代碼,我不明白爲什麼你有這張表。只需在訂單表中使用CouponCode即可。 – damienbrz 2012-04-25 21:59:46

+0

是的,它必須與優惠券代碼數據庫中的優惠券之一相匹配。優惠券是預先生成的,分發的,我需要匹配的只有一個訂單可以有一張優惠券。 – 2012-04-25 22:47:59

回答

1

要回答你的問題:

class Order < ActiveRecord::Base 
    has_one :coupon_code, :foreign_key => 'CouponCode' 
end 

class CouponCode < ActiveRecord::Base 
    belongs_to :order, :foreign_key => 'CouponCode' 
end  

不過,我同意達米安:這看起來有點過的公共DB的設計方法。

+0

我需要設置:primary_key =>「優惠券」呢?因爲它不會使用Coupon_id? – 2012-04-25 22:46:48