объяснение рельсового комплекса - PullRequest
1 голос
/ 26 февраля 2020

Я новичок в рельсах. Я нашел этот код в одном из примеров проекта rails.

has_many :all_ticket_fields, -> { 
where(parent_id: nil)
.includes([:picklist_values, :flexifield_def_entry]) 
.order(:position)
}, class_name: 'DVClass::NormalSection'

Не могли бы вы объяснить это?

1 Ответ

1 голос
/ 26 февраля 2020

Это соотношение один-ко-многим между ItilAssociation и DVClass::NormalSection, предположим, что вы извлекли запись из ItilAssociation

itil = ItilAssociation.first

itil.all_ticket_fields в основном будет выполнять этот запрос,

DVClass::NormalSelection.where(itil_association_id: itil.id)
                        .where(parent_id: nil)
                        .includes([:picklist_values, :flexifield_def_entry]) 
                        .order(:position)

has_many с условиями - это просто способ вернуть связанные записи на основе условий.

Надеюсь, что это помогло!

...