Я действительно не могу объяснить это поведение, обратите внимание, как после того, как я сделаю запрос, изменился идентификатор объекта класса, и поэтому my is_a? оценка возвращает false.Rails: class 'object_id изменяется после того, как я делаю запрос
любые идеи? Я даже не уверен, как отладить это. Кроме того, это не связано с получением запроса из командной строки. Такое же поведение проявляется и на веб-сервере, его проще объяснить из командной строки.
staging$ RAILS_ENV=staging script/console
Loading staging environment (Rails 2.3.2)
>> c = CartItem.new
=> #<CartItem id: nil, order_id: nil, order_source: nil, date: nil, user_id: nil, created_at: nil, updated_at: nil, paid: nil, payment_id: nil, values: nil, cart_description: nil, type: nil, price: nil, email: nil, error: nil>
>> c.class.object_id
=> 70151495336400
>> CartItem.object_id
=> 70151495336400
>> c.is_a? CartItem
=> true
>> app = ActionController::Integration::Session.new
=> #<ActionController::Integration::Session:0x7f9ad5c55db0 .... >
>> app.get("site/favorite")
=> 200
>> c.class.object_id
=> 70151495336400
>> CartItem.object_id
=> 70151496019760
>> c.is_a? CartItem
=> false
>> c.class
=> CartItem(id: integer, order_id: string, order_source: string, date: date, user_id: integer, created_at: datetime, updated_at: datetime, paid: boolean, payment_id: integer, values: text, cart_description: string, type: string, price: integer, email: string, error: string)
Не следует. Кажется, что-то вроде перезагрузки! продолжается. Трудно сказать без полного исходного кода ... –
Я предполагаю, что вы полностью сериализуете объект телеграммы в сеанс, а затем восстанавливаете его. Это может быть сложной задачей. – Tilendor
Хм, любые предложения о том, где и что искать, если это так? – CambridgeMike