консоль rails возвращает хэши в определениях классов - PullRequest
0 голосов
/ 03 марта 2020

просто хотел протестировать некоторые ассоциации в консоли rails. Для этой цели определены классы, которые «содержат» ассоциации.

Я недавно переключил db-адаптер с sqlite3 на mysql. Может ли это быть результатом этого?

Или это вопрос настроек, и я могу изменить поведение консоли рельсов в этом отношении (и, возможно, в других)

Спасибо

По разумной просьбе Дэна для примера

2.6.0 :005 > class Node < ApplicationRecord
2.6.0 :006?>   belongs_to :parent, polymorphic: true
2.6.0 :007?>   has_many :children, as: :parent
2.6.0 :008?>   end
 => {"parent"=>#<ActiveRecord::Reflection::BelongsToReflection:0x0000560b72e96ed8 @name=:parent, @scope=nil, @options={:polymorphic=>true}, @active_record=Note (**call 'Node.connection' to establish a connection**), @klass=nil, @plural_name="parents", @type=nil, @foreign_type="parent_type", @constructable=false, @association_scope_cache=#<Concurrent::Map:0x0000560b72e96a78 entries=0 default_proc=nil>>, "children"=>#<ActiveRecord::Reflection::HasManyReflection:0x0000560b72ebac98 @name=:children, @scope=nil, @options={:as=>:parent}, @active_record=Note (call 'Node.connection' to establish a connection), @klass=nil, @plural_name="children", @type="parent_type", @foreign_type=nil, @constructable=true, @association_scope_cache=#<Concurrent::Map:0x0000560b72eba8d8 entries=0 default_proc=nil>>} 

1 Ответ

0 голосов
/ 19 марта 2020

Это потому, что отображение some_object в консоли Ruby зависит от результата some_object.inspect. И по умолчанию для этого используется метод Object#inspect, который возвращает этот знак #, за которым следует имя класса объекта, кодированный идентификатор объекта и список переменных экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...