我在哪里放置相关型号/控制器的范围

时间:2011-06-06 23:16:51

标签: ruby-on-rails ruby-on-rails-3

Transaction belongs_to CartCart has_many Transactions。我有一个Cart视图,其中包含以下内容:@cart.transactions.each do |t|

我想将此循环中包含的Transactions的数量限制为第一个。我还希望使用scope :first, limit(1).order('created_at ASC')

执行此操作

我的问题是:这个范围在哪里(即在交易模型或购物车模型中)以及如何正确实施?

我尝试将其放在Transactions模型中并在Cart控制器中使用它并且它不起作用:@ftransaction = Cart.transaction.first但是这不起作用。

2 个答案:

答案 0 :(得分:1)

如果您想要第一笔交易,可以这样称呼:

@ftransaction = @cart.transactions.first

注意复数交易。默认情况下,此顺序为id ASC(除非您定义了默认范围),这应该是为了与created_at ASC相同的参数。

如果您确定需要或需要订单以及限制,则范围将在transaction.rb中定义。

答案 1 :(得分:1)

啊,我试过这个并且有效:

@ftransaction = @cart.transactions.first