J'ai ces 2 tables:Comment lister les enregistrements d'une table avec un compteur du nombre sont utilisés par une relation
create_table "instruments", force: :cascade do |t|
t.string "name"
...
create_table "user_instruments", force: :cascade do |t|
t.integer "user_id"
t.integer "instrument_id"
...
Avec ces relations:
class Instrument < ActiveRecord::Base
has_many :user_instruments
has_many :users, :through => :user_instruments
class UserInstrument < ActiveRecord::Base
belongs_to :user
belongs_to :instrument
Comment interroger tous les instruments, avec un compteur de combien de fois il est utilisé, comme:
Instrument.select ('nom, User_instrument.group (: instrument_id) .count'). tous
ou peut-être:
UserInstrument.includes (instruments): .Groupe ('INSTRUMENT_ID comme count') select ('instrument.name, count')
Cela fonctionne au niveau de la vue. mais il crée trop de requêtes:
<% @instruments.each_with_index do |instrument,idx| %>
...
<td><%= instrument.users.count %></td>
...
<%end%>
Comment faire cela avec 1 requête?
Merci
Cela fonctionne. Merci Omkar. – Simon