0

こんにちは、助けてくれてありがとう:

class User < ActiveRecord::Base
  attr_accessible :label, :description, :number

  has_many :user_posts
  has_many :posts, through: :user_posts

  after_initialize :count

  protected
  def count
    self.number = posts.count
  end
end

フィールド :number をユーザーのすべての投稿のカウントにしたい (モデルで作成した関数カウントで定義する必要があると思います。:number フィールドはモデル内の DB にのみ存在しないことに注意してください。たとえば、User.last によって返されるレコードで使用できます。

私は ActiveRecord に本当に慣れていないので、私が行く必要があるのはこの方法ではないかもしれません。私はどんな提案にもオープンです。

4

1 に答える 1

0

これを試して:

class User < ActiveRecord::Base
  attr_accessible :label, :description
  attr_accessor :number

  has_many :user_posts
  has_many :posts, through: :user_posts

  after_initialize :count

  protected
  def count
    self.number = posts.count
  end

end

from uer rightの値を取得していないため:numberattr_accessibleリストで指定する必要はありませんか?number

モデルのみの属性 (永続的ではない) の場合、最も簡単な方法は、attr_accessor

于 2013-08-20T03:40:31.640 に答える