0

User has_many microposts Micropost belongs to users

10 件以上のマイクロポストを持っているユーザーを対象にする

コントローラ:

def active_users
  @users  = User.active_users
end

モデル

def self.active_users
  self.select { |u| u.microposts.size > 10}
end

メソッドをActiveRecordリクエストに書き換える方法active_users(おそらく:count :groupメソッドを使用して)

                             **UPDATE**

the solution

self.joins(:microposts).group("users.id").having("count(*) > 10").all

4

1 に答える 1

0

Counter_Cache が答えです。

多分これに行きます: http://railscasts.com/episodes/23-counter-cache-column http://guides.rubyonrails.org/association_basics.html#counter-cache

User has_many microposts

Micropost 
  belongs to users
  counter_cache: true

次に、移行を行います。

class AddMicropostCountToUsers < ActiveRecord::Migration
  def change
    add_column :users, :microposts_count, :integer
  end
end

次に、次のようなものに行くことができます。

@users  = User.where('microposts_count > ?', 10)

さらにカスタマイズするには、リンクを確認してください。

于 2013-09-26T13:30:21.243 に答える