前言
如果你在freenode的#rubyonrails中闲逛,这可能听起来就像我2天前在那里问到的那样。在花了几个小时研究AR协会之后,在#rubyonrails的讨论之后,我仍然感到迷茫,所以我在这里问。 :)
目标
我主持了许多博客。我的目的是创建批量提交,我在帖子中选择我想要提交的帖子的博客,然后给批次提交提交日期。后来我想创建一个查询批次的工人,然后实际将帖子提交给它的相关博客。
困惑
我对如何设置关联和相应的表感到困惑。
以下是我对模特的看法。
class Blog < ActiveRecord::Base
has_many :submissions
has_many :posts, :through => :submissions
end
class Post < ActiveRecord::Base
has_many :submissions
has_many :blogs, :through => :submissions
end
class Submission < ActiveRecord::Base
belongs_to :post
belongs_to :blog
end
这是我对桌子的所作所为。
[Blogs]
id :integer not null, primary key
title :string(255)
etc
[Posts]
id :integer not null, primary key
subject :string(255)
content :text
etc
[Submissions]
id :integer not null, primary key
submit_date :datetime
post_id :integer
forum_id :integer
etc
问题
非常感谢您阅读这篇巨大的帖子。
答案 0 :(得分:1)
在提交表中,我建议您将forum_id更改为blog_id,以符合Rails ethos约定优于配置。否则,您需要指定forum_id是提交的foreign_key。
所以[首选]:
[Submissions]
id :integer not null, primary key
submit_date :datetime
post_id :integer
**blog**_id :integer
etc
或者:
class Blog < ActiveRecord::Base
has_many :submissions, :foreign_key => "forum_id"
has_many :posts, :through => :submissions
end
根据您的描述,我认为您不需要另一个模型而只需使用提交表上的submit_date字段。