我无法将方法应用于模型中的集合。这是我的模型的样子:
class MyModel < ActiveRecord::Base
def self.range(min, max)
where(id: min..max)
end
def self.my_collection_method
collect{|x| x.id}
end
end
这有效:
MyModel.range(53, 55)
# [#<MyModel id: 53>, #<MyModel id: 54>]
这有效:
MyModel.range(53, 55).collect{|x| x.id}
# [53, 54]
但是当我尝试花哨并使用my_collection_method而不是collect时,我收到了这个错误:
MyModel.range(53, 55).my_collection_method
# NoMethodError: undefined method `collect' for #<Class:0x007fcbad3efc30>
我怎样才能让它工作?
感谢您的时间和智慧!!