2011-06-06 57 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

相关问题