Rails:最佳用户关联模型 – >post – >评论模型在一个论坛的网站类型?

我正在创建一个论坛网站,每个注册用户都可以写很多post和
每个post都可以有很多评论。
此外,每个用户都可以评论任何其他用户创建的任何post。

has_many has_many user ------------> Posts -------------- > Comments | ^ | | | has_many | |------------------------------------------- belongs_to Post ------------> User ^ ^ | | | | belongs_to belongs_to | | | | Comments------------- 

我无法使用“post.comment.user”获取评论的用户详细信息
commenter_email = comments.user.email
怎么做到这一点?
粘贴我的模型供参考: –

 class Comment < ActiveRecord::Base belongs_to :post belongs_to :user end class Post  :destroy end class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable attr_accessible :email, :password, :password_confirmation, :remember_me has_many :posts has_many :comments end 

我的架构在这里: –

 create_table "comments", :force => true do |t| t.integer "post_id" t.integer "user_id" t.text "comment_text" t.datetime "created_at" t.datetime "updated_at" end create_table "posts", :force => true do |t| t.integer "user_id" t.integer "sell_or_buy" t.string "title" t.text "body" t.datetime "created_at" t.datetime "updated_at" end create_table "users", :force => true do |t| t.string "email", t.string "encrypted_password", t.datetime "created_at" t.datetime "updated_at" end 

我正在使用Rails 3.0.1。
请提出您的想法。

由于您的post有很多评论,因此它是post.comments而不是post.comment

由于commentscomments列表, comments.user也无效。

您将需要评论的ID,以便您可以找到特定评论的用户:

 post.comments.find(params[:id]).user 

当然,你也可以得到所有用户:

 post.comments.all.collect(&:user)