Rails 协会公约
Rails Association Convention
与这个问题相关的模型有三个 Transaction
Bid
和 Auction
。创建拍卖,然后显然在该拍卖中创建出价。一旦买家选择了出价并结账,就会创建交易,因此在拍卖和出价之后。
交易与拍卖和投标有关联,并包含大量有关交易的信息(即运输信息、税收、按项目分类的价格明细)。现在我有
交易
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_to
和has_one
应该调换吗?如果是这样怎么办?
现在我的 Bid
和 Auction
有一个 transaction_id
。我的 Transaction
有一个 auction_id
你的联想是倒退的。
如果先创建拍卖,然后为拍卖创建出价,那么您的 Bid
需要一个 auction_id
外键。
如果在 一系列拍卖出价后创建交易,您的 Transaction
应该有一个外键 bid_id
,并且没有需要一个 auction_id
外键,因为已经有一个隐式的 link 通过 bid
.
您的 Rails 关联将这样设置:
class Auction
has_many :bids
end
class Bid
belongs_to :auction
end
class Transaction
belongs_to :bid
has_one :auction, through: :bid
end
与这个问题相关的模型有三个 Transaction
Bid
和 Auction
。创建拍卖,然后显然在该拍卖中创建出价。一旦买家选择了出价并结账,就会创建交易,因此在拍卖和出价之后。
交易与拍卖和投标有关联,并包含大量有关交易的信息(即运输信息、税收、按项目分类的价格明细)。现在我有
交易
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_to
和has_one
应该调换吗?如果是这样怎么办?
现在我的 Bid
和 Auction
有一个 transaction_id
。我的 Transaction
有一个 auction_id
你的联想是倒退的。
如果先创建拍卖,然后为拍卖创建出价,那么您的 Bid
需要一个 auction_id
外键。
如果在 一系列拍卖出价后创建交易,您的 Transaction
应该有一个外键 bid_id
,并且没有需要一个 auction_id
外键,因为已经有一个隐式的 link 通过 bid
.
您的 Rails 关联将这样设置:
class Auction
has_many :bids
end
class Bid
belongs_to :auction
end
class Transaction
belongs_to :bid
has_one :auction, through: :bid
end