Size: a a a

2017 November 08

G

Ghost in Rubyata
Ну вот сейчас модели унаследовал от ActiveRecord::Base, перезапустил консоль и нет их.
Хотя некоторые есть. Но не те, которые сейчас унаследовал.
источник

MS

Mikhail Sytchev in Rubyata
О_О
источник

MS

Mikhail Sytchev in Rubyata
Мож spring шалит с зависимостями или что-то в этом роде. Я хз. Может кто-то сможет пояснить.
источник

MS

Mikhail Sytchev in Rubyata
проблема в том, что в рельсе все хуйпойми как инжектится. слишком неочевидный механизм autoload
источник

RS

Rustam Sharshenov in Rubyata
чуваки, в девелопменте прелоад не пашет по дефолту
источник

MS

Mikhail Sytchev in Rubyata
Rails.application.eager_load!
источник

RS

Rustam Sharshenov in Rubyata
eager_load если включить, то будет работать
источник

MS

Mikhail Sytchev in Rubyata
ActiveRecord::Base.subclasses.map(&:name)
источник

MS

Mikhail Sytchev in Rubyata
попробуй так
источник

RS

Rustam Sharshenov in Rubyata
И, кстати, в 5-х рельсах уже не так. По дефолту модельки наследуются от ApplicationRecord, у которого стоит self.abstract_class = true
источник

RS

Rustam Sharshenov in Rubyata
ActiveRecord::Base.subclasses.map(&:name) может показать только [ApplicationRecord] как единственного наследника
источник

RS

Rustam Sharshenov in Rubyata
>> Полезно когда погружешься в новый проект, а модели раскиданы по гемам, или engines.

Если гемы/engines спроектированы правильно, то и их модельки будут в неймспейсах. Соответственно, искать, откуда ноги растут просто
источник

RS

Rustam Sharshenov in Rubyata
Ну или если прям надо так получить список, то лучше не subclasses тогда дергать, а descendants
ActiveRecord::Base.descendants.map(&:name)
источник

MS

Mikhail Sytchev in Rubyata
Rustam Sharshenov
>> Полезно когда погружешься в новый проект, а модели раскиданы по гемам, или engines.

Если гемы/engines спроектированы правильно, то и их модельки будут в неймспейсах. Соответственно, искать, откуда ноги растут просто
не, вообще понять какие есть, чтобы потом искать
источник

MS

Mikhail Sytchev in Rubyata
а так все в неймспейсах, да
источник

RS

Rustam Sharshenov in Rubyata
subclasses - это же только ближние подклассы, а descendans - все подклассы
источник

RS

Rustam Sharshenov in Rubyata
иначе в случае STI покажется только главная запись (Animal::Base, а не [Animal::Base, Animal::Cat, Animal::Dog, Animal::Unicorn])
источник

MS

Mikhail Sytchev in Rubyata
Базаааришь
источник

MS

Mikhail Sytchev in Rubyata
ActiveRecord::Base.descendants.map(&:name).count
=> 63
ActiveRecord::Base.subclasses.map(&:name).count
=> 34
источник

MS

Mikhail Sytchev in Rubyata
у меня в 2 раза почти отличалось количество
источник