【发布时间】:2012-11-29 09:26:02
【问题描述】:
我在我的项目中使用 Rails 3.2.8,我想使用名为 'open' 的范围
scope :open, where(:closed => false)
为了用 JSON 发送它。类似于json.open @foo.bar.open.count。但是 Rails 将 .open 识别为 Ruby 方法(我猜与打开的文件相关),而不是我的范围(并抛出错误“参数数量错误(0 表示 1)”)
.如何强制 Rails 使用我的范围,而不是 Ruby 方法?
【问题讨论】:
-
你能不能把它命名为稍微不同的名字?
-
@foo.bar是一个类还是一个对象?它必须是一个类。 -
@oldergod 我认为您的原始答案是正确的。当你删除它时,我正要赞成它。我打算回答同样的问题。
-
@airat-shigapov
open不是ActiveRecord::Base类 上的保留方法名称,所以这应该不是问题。即,如果您将open定义为MyClass的范围,并且MyClass继承自ActiveRecord::Base,则MyClass.open应该可以正常工作。 -
@shioyama 我很着急,不确定它是否适合 OP 的问题。我已取消删除,谢谢。
标签: ruby-on-rails ruby ruby-on-rails-3 scope ruby-on-rails-3.2