2011-06-06 80 views
0

Transaction belongs_to Cart and Cart has_many Transactions。我有一個Cart視圖,其中包含以下內容:@cart.transactions.each do |t|哪裏可以買到相關型號/控制器的範圍

我想將此循環中包含的Transactions的數量限制爲第一個。我也想用scope :first, limit(1).order('created_at ASC')來做到這一點。

我的問題是:這個範圍在哪裏(即在交易模型或購物車模型中)以及它如何正確實施?

我試圖把它放在Transactions模型中,並在Cart控制器中使用它,但它沒有工作:@ftransaction = Cart.transaction.first但這沒有奏效。

回答

1

如果你想第一個交易,你可以調用它像這樣:

@ftransaction = @cart.transactions.first 

通知複數交易。默認的這個命令是id ASC(除非你有一個默認的範圍定義),這應該是爲了與created_at ASC相同的參數。

如果您確實想要或需要該訂單以及限制,範圍將在transaction.rb中定義。

+0

我嘗試這樣做,但我得到的錯誤「未定義的方法'交易」 – Justin 2011-06-06 23:28:00

+0

您已經定義了'的has_many:transactions'您的購物車模型? – 2011-06-07 09:50:54

+0

是的,我定義了,出於某種原因,它與@cart.transactions而不是Cart.transactions。 – Justin 2011-06-07 14:54:05

1

啊,我想這和它的工作:

@ftransaction = @cart.transactions.first

相關問題