Rails Association Convention

时间:2016-10-05 16:58:22

标签: ruby-on-rails associations

有三个与此问题Transaction BidAuction相关的模型。创建拍卖,然后显然在该拍卖中创建出价。一旦买方选择了出价并签出,就会创建一个交易,因此在拍卖和出价之后。

交易与拍卖和投标有关联,并包含大量有关交易的信息(即运输信息,税金,按行项目划分的价格)。现在我已经

交易

class Transaction < ActiveRecord::Base
    has_one :auction
    has_one :bid

出价

class Bid < ActiveRecord::Base
    belongs_to :tx, class_name: "Transaction", foreign_key: "transaction_id"

拍卖

class Auction < ActiveRecord::Base
    belongs_to :tx, class_name: "Transaction", foreign_key: "transaction_id"

我的belongs_tohas_one应该切换吗?如果是这样的话? 现在我的BidAuction有一个transaction_id。我的Transaction有一个auction_id

1 个答案:

答案 0 :(得分:0)

你的关联是倒退的。

如果首先创建了竞价,然后为竞价创建了竞价,则您的Bid需要auction_id个外键。

如果在拍卖的一系列出价后创建了一个交易,那么您的Transaction应该有一个外键bid_id,并且不需要{{1外键,因为已经有auction_id的隐式链接。

然后将设置您的Rails关联:

bid