ruby-on-rails - Rails 范围 - 未定义的方法

标签 ruby-on-rails scope

我有一个名为“事件”的模型,它有一个名为“即将到来”的范围,它返回 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/

相关文章:

ruby-on-rails - FactoryBot 和 Faker - unique 不起作用

css - 如何在haml中转换css样式语法

ruby-on-rails - 从提供给 instance_exec 的 block 中提前返回

vb.net - 局部变量的 block 作用域

javascript - 访问函数内部的变量,使用 "this"关键字初始化

xml - 根据 XML 请求更改 WCF 命名空间

ruby-on-rails - 使用设备发送密码更改确认

ruby-on-rails - `rails server` 使用Puma,域名指向127.0.0.1

javascript - 将代码附加到任何范围内的 JS 函数

javascript - 自定义方法中的 jQuery 'this' 关键字