まず、データモデル:
class Forum < ActiveRecord::Base
has_many :topics, :dependent => :destroy, :order => 'created_at desc'
end
class User < ActiveRecord::Base
has_many :topics, :dependent => :destroy
has_many :comments, :dependent => :destroy
has_many :replies, :dependent => :destroy
end
class Topic < ActiveRecord::Base
belongs_to :forum
belongs_to :user
has_many :comments, :dependent => :destroy
end
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :topic
has_many :replies, :dependent => :destroy
end
class Reply < ActiveRecord::Base
belongs_to :user
belongs_to :comment
end
したがって、ユーザーはトピックをフォーラムに投稿できます。また、フォーラムのトピックにコメントを投稿することもできます。そして、彼らはコメントへの返信を投稿することができます。
トピック、コメント、または返信のいずれかを投稿して、参加しているフォーラムのリストを取得できるようにしたいと思います。