1

Partners というモデルと Profiles というモデルがあります。

パートナーには多くのプロファイルがあり、プロファイルには 1 つのパートナーがあります。

パートナー コントローラーでカウントして、所有しているプロファイルの数を返す方法が必要です。

プロファイル テーブルでは、この列は次のように呼ばれます: partner_id は、パートナー テーブルの id 列と同じです。

.count() 関数を見たことがありますが、正しい数値を返すために必要なものがわかりません

乾杯

4

3 に答える 3

10

列を使用するのが最善の方法だと思いcounter_cacheます:

class Partner < ActiveRecord::Base
  has_many :profiles, :dependent => :destroy
end

class Profile < ActiveRecord::Base
  belongs_to :partner, :counter_cache => true
end

profiles_countテーブルに列を追加する必要がありpartnersます。@partner.profiles.countデータベースに対して追加のクエリを実行するため、呼び出しには適していません。@partner.profiles.size代わりに使用する必要があります。データベースから既に取得されている場合はコレクションのサイズを取得し、別の場合はクエリを実行します。詳細については、次のリンクを参照してください。

于 2013-01-16T11:37:05.687 に答える
1

あなたが持っている場合

has_many :profiles 

コントローラでインスタンス化されたPartnerクラスと@partnerで、次のことができます。

@partner.profiles.count
于 2013-01-16T11:35:50.653 に答える
1
@partner = Partner.find params[:id] 
@partner.profiles.count

トリックを行う必要があります

于 2013-01-16T11:33:15.227 に答える