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 字段不仅在模型中的数据库中,但我想要例如,它在 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

您不需要:numberattr_accessible列表中指定,因为您没有number从 uer 获取值,对吗?

对于仅模型属性(非持久性),最简单的方法是使用attr_accessor

于 2013-08-20T03:40:31.640 回答