Мой mock_model определен как __null_object (что означает, что он ответит на все сообщения, кроме заглушенных, возвращая себя.
Итак, помощники по маршрутизации рельсов (например, product_url (product)) сначала преобразовывают продукт вхеш и использует продукт ['id'] для генерации маршрута.
Так как мой mock_product не заглушал to_hash, поведение "as_null_object" имело приоритет
irb > mock_product
=> #<Product:0x..fdb3b6176 @name="Product_1028">
irb > mock_product.to_hash
=> #<Product:0x..fdb3b6176 @name="Product_1028">
Мое решениебыла заглушка to_hash:
irb > mock_product(:to_hash => {:id => 1 }).to_hash
=> {:id=>1}
Должно ли это быть включено в модель mock_product по умолчанию?