Я безуспешно пытался генерировать использование методов запроса 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
Форум по Mysql
1750733027
Anonymous
Я безуспешно пытался генерировать использование методов запроса Rails. Список всех [b] активных поставщиков [/b] с подсчетом [b] Active [/b] связанными исследованиями. Даже поставщики с нулевыми исследованиями должны сообщать. Мои усилия с методами запросов 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>
Обратите внимание, что показаны поставщики без каких -либо связанных исследований. Указатели, где функционируют правильно.
[b] Модели: [/b]
class Provider < ApplicationRecord
has_many :studies
end
class Study < ApplicationRecord
belongs_to :provider
end
[b]schema.rb[/b]
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79676950/what-is-the-rails-activerecord-code-to-generate-this-raw-sql-or-its-functiona[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия