2013-08-20 60 views
0

嗨計數領域的所有感謝您的幫助:Rails的ActiveRecord的插入記錄結果

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 

我whant領域:編號是(我認爲必須在定義用戶的所有帖子的計數函數計數我在模型中創建的。注意:數字字段不在數據庫中,只在模型中,但我希望它在User.last返回的記錄中可用,例如

我真的很新以ActiveRecord,所以也許它不是這種方式我需要去,我可以任何消化。

回答

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 

你不需要在attr_accessible列表指定:number你不是從UER正確服用number價值?

對於模型只屬性(不執着),最簡單的方法是,使用attr_accessor

+0

謝謝回答。代碼起作用。但我認爲我做錯了我想要的東西。我需要將我的結果呈現在json數組中,並且在每個json(每個用戶)中,我需要插入一個字段(數字)witch是用戶帖子的總數。我認爲在模型中做這件事是件好事,但我無法在ActiveRecord結果中訪問它。我怎樣才能做到這一點 ? –

+0

你應該看看'rabl'寶石。一個railscast也在那裏。 – manoj2411

+0

這就是我需要的東西。只需在我的rabl集合中添加一個節點並且它可以工作; p'node(:number){| user | user.posts.count}' –