我正在尝试这个
@user.orders.of(:some_type).for_today
业务规则说用户可以每天放置任何类型的单个订单,通过回调等应用它。我知道for_today
,我希望它返回单个对象。这意味着我想让范围for_today
返回单个对象而不是数组。但是所有以下都返回数组
scope :of, lambda{ |type| where(:order_type => type) }
scope :for_today, where(" created_at BETWEEN ? AND ? ", Date.today, Date.tomorrow)
scope :of, lambda{ |type| where(:order_type => type) }
scope :for_today, where(" created_at BETWEEN ? AND ? ", Date.today, Date.tomorrow).limit(1)
scope :of, lambda{ |type| where(:order_type => type) }
scope :for_today, where(" created_at BETWEEN ? AND ? ", Date.today, Date.tomorrow).first
然后我在我的代码中看不到任何其他选项再次调用first
@user.orders.of(:some_type).for_today.first
我猜,它的工作方式是正确的,因为开发人员知道她正在取出第一条记录,这更有意义,否则无法猜测它是返回数组还是单个对象。但是,考虑到我的业务规则,我希望for_today
应该返回单个对象,因此想知道,有没有办法告诉scope
它将返回单个对象所以不要打包它使用数组。