我有一个名为“事件”的模型,该模型具有一个名为“即将到来”的范围,该函数将返回将来已过时的事件。在rails控制台中,每当我键入
Event.upcoming
它成功返回事件的子集。
但是,如果我键入:
@events = Event.all
@events.upcoming
我收到未定义的方法“即将到来”错误。范围仅适用于类而不适用于实例化变量吗?
提前致谢。
约汉
最佳答案
调用.all
后,@events
不再是ActiveRelation
,因此无法在其上调用作用域。
因此,Event.where(SOME CONDITIONS).order(ORDERING).upcoming.limit(X)
仍将起作用,但Event.where(SOME CONDITIONS).order(ORDERING).all.upcoming.limit(X)
将不起作用。