Transaction
属于Cart
,而Cart
具有多个Transactions
。我有一个Cart
视图,其中包含以下内容:@cart.transactions.each do |t|
。
我想将此循环中包含的Transactions
的数量限制为第一个。我也想用scope :first, limit(1).order('created_at ASC')
来做这件事。
我的问题是:这个范围去了哪里(即在交易模型或购物车模型中)?它是如何正确实现的?
我试着把它放在Transactions
模型中,并在Cart
控制器中使用它,但它不起作用:@ftransaction = Cart.transaction.first
,但它没有起作用。
如果你想要第一笔交易,你可以这样称呼它:
@ftransaction = @cart.transactions.first
注意多笔交易。默认情况下,它的顺序是id ASC
(除非您定义了默认作用域),出于参数考虑,它应该与created_at ASC
相同。
如果您决定想要或需要订单以及限制,则范围将在transaction.rb
中定义。
啊,我试过了,它成功了:
@ftransaction = @cart.transactions.first