Я безуспешно пытался генерировать использование методов запроса Rails. Список всех активных поставщиков с подсчетом Active связанными исследованиями. Даже поставщики с нулевыми исследованиями должны сообщать. Мои усилия с методами запросов Rails не возвращают поставщиков без ассоциированных активных исследований. Пример: < /p>
(Provider.left_joins(:studies)
.where("studies.active = true AND providers.active = true")
.group("providers.id")
.select("providers.id AS 'prov_id', COUNT('studies.id') AS 'studies_count'"))
.order("studies_count ASC")
< /code>
возвращает: < /p>
[#
, #]
< /code>
Я могу достичь своей цели с помощью RAW SQL. Я подозреваю, что это более эффективно, чем использование функционально эквивалентных методов запросов рельсов. Однако я не могу проверить это, поскольку у меня нет функционально эквивалентного кода Rails. Предложения? < /P>
Это работает с SQLite3. Должен работать с PostgreSQL и MySQL. < /P>
ActiveRecord::Base.connection.execute 0},
{"prov_id"=>978749543, "study_count"=>0},
{"prov_id"=>298486374, "study_count"=>4},
{"prov_id"=>980190962, "study_count"=>6} ]
< /code>
Обратите внимание, что показаны поставщики без каких -либо связанных исследований. Указатели, где функционируют правильно.
Модели:
class Provider < ApplicationRecord
has_many :studies
end
class Study < ApplicationRecord
belongs_to :provider
end
schema.rb
create_table "providers", force: :cascade do |t|
t.string "name", null: false
t.boolean "active", default: true, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "studies", force: :cascade do |t|
t.integer "provider_id", null: false
t.boolean "active", default: true, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["provider_id"], name: "index_studies_on_provider_id"
end
Подробнее здесь: https://stackoverflow.com/questions/796 ... -functiona
Что такое код ActiveRecord Rails для генерации этого «необработанного» SQL или его функционального эквивалента? ⇐ MySql
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Получение необработанного SQL -запроса, построенного из Activerecord в Codeigniter 1.7
Anonymous » » в форуме Php - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-