2010-10-25 7 views
5

Her kayıtlı kullanıcının birçok gönderi yazabileceği ve her gönderinin çok sayıda yorum alabildiği bir forum sitesi oluşturuyorum ve her gönderide
.
Ayrıca, her kullanıcı başka bir kullanıcı tarafından oluşturulan herhangi bir gönderi hakkında yorum yapabilir. Nasıl bunu başarmak içinRaylar: Kullanıcılar için en iyi ilişkilendirme modeli -> mesajlar -> bir forumda bir modele ait yorum web sitesi türü?

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

ben "post.comment.user" veya
commenter_email = comments.user.email
kullanarak bir yorumun kullanıcı bilgilerini elde edebilir değilim? referans için
yapıştırma benim modeller: - Burada

class Comment < ActiveRecord::Base 
belongs_to :post 
belongs_to :user 
end 
class Post < ActiveRecord::Base 
    has_many :comments, :dependent => :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 

benim şema: -

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 

ben Rails 3.0.1 kullanıyorum.
Lütfen düşüncelerinizi önerin. Yayınınız birçok yorum vardır, bu nedenle post.comments yerine post.comment

arasında comments yana olan yorumların bir liste olduğundan

+0

nasıl bir yorum oluşturabilirim? Denetleyici? –

cevap

8

, comments.user da geçerli değil. Tabii

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

, ayrıca tüm kullanıcılar alabilir:: Belirli yorumun kullanıcısı bulmak diye

Sen yorumun kimliği gerekecektir

post.comments.all.collect(&:user) 
İlgili konular