Учитывая это определение (с помощью Rails 3.2.13 на Ruby, 2.0.0-P195) ...Как выяснить, какой драгоценный камень рубин угнал ассоциации ActiveRecord метод
class Food < ActiveRecord::Base
has_many :recipe_foods, foreign_key: :food_id
.RESET не действует как документально (он должен сбросить флаг @loaded, но вместо этого он повторно запросов к базе данных и возвращать результаты) ...
2.0.0-p195 :037 > f = Food.last
Food Load (1.6ms) ...
=> #<Food ...
2.0.0-p195 :038 > f.recipe_foods
RecipeFood Load (9.4ms) ...
=> [#<RecipeFood ...
2.0.0-p195 :039 > f.recipe_foods.reset
RecipeFood Load (10.0ms) ...
=> [#<RecipeFood ...
Я подозреваю, что некоторые другие драгоценного камня угнал метод, но это то, что я получаю от .method ...
2.0.0-p195 :040 > f.recipe_foods.method(:reset).source_location
NameError: undefined method `reset' for class `Array'
Как определить, какая версия .reset фактически выполняется?
UPDATE:
Когда я пытаюсь вызвать несуществующий метод я получаю этот хаос (в случае, который помогает с тайной):
2.0.0-p195 :052 > f.recipe_foods.snafu
NoMethodError: undefined method `snafu' for #<ActiveRecord::Relation:0x007fdaef6315b0>
2.0.0-p195 :053 > f.recipe_foods.method(:snafu)
NameError: undefined method `snafu' for class `Array'