我有一个名为“事件”的模型,它有一个名为“即将到来”的范围,它返回 future 的事件。在 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)
将不起作用。
关于ruby-on-rails - Rails 范围 - 未定义的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413058/