Rails: Bestes Assoziationsmodell für Benutzer -> Beiträge -> Kommentarmodell in einer Art Forum-Website?
Ich erstelle eine Forum-Website, auf der jeder registrierte Benutzer viele Beiträge schreiben kann und
Jeder Beitrag kann viele Kommentare enthalten.
Auch jeder Benutzer kann Kommentare zu Beiträgen abgeben, die von einem anderen Benutzer erstellt wurden.
has_many has_many
user ------------> Posts -------------- > Comments
| ^
| |
| has_many |
|-------------------------------------------
belongs_to
Post ------------> User
^ ^
| |
| |
belongs_to belongs_to
| |
| |
Comments-------------
Ich kann die Benutzerdetails eines Kommentars nicht mit "post.comment.user" oder @ abrufe
commenter_email = comments.user.email
Wie kann man das erreichen?
Pasting meine Modelle als Referenz: -
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
Hier mein Schema: -
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
Ich verwende Rails 3.0.1.
Bitte schlagen Sie Ihre Gedanken vor.