モデル内のコレクションにメソッドを適用するのに問題があります。私のモデルは次のようになります。
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]
しかし、派手にしようとして、 collect の代わりに my_collection_method を使用すると、次のエラーが発生します。
MyModel.range(53, 55).my_collection_method
# NoMethodError: undefined method `collect' for #<Class:0x007fcbad3efc30>
どうすればこれを機能させることができますか?
あなたの時間と知恵をありがとう!!