0

我的 Rails 应用程序有一个User模型和一个Idea模型。每个用户可以有很多想法,每个想法都属于一个用户(或没有)。用户使用 Idea 控制器的claim操作获取创意的所有权,并使用该操作发布创意release

到目前为止,真的很简单。但我刚刚意识到我希望这样做更多,现在我不确定如何继续:基本上,我希望用户能够“报告”错误/无效想法的想法,以及注释说明报告的原因。

我还想跟踪有关声明想法的指标——一个想法在被标记为提交之前被声明了多长时间(它用于管理博客文章)等等。

在一个不相关的问题中,有人建议我Claim在我的应用程序中需要一个模型来进行这种复杂的跟踪。这对我来说很有意义,但我真的不确定该模型将如何构建以及如何工作。它会像日志吗?如果是这样,我将如何确定每个想法的当前想法状态是什么?

对此的任何见解都将受到欢迎。

4

2 回答 2

1

我认为,由于您需要记录所有用户操作,因此如果您保持报告和声明独立,则效果会更好。

所以,它可能看起来像

用户has_many想法

想法has_many声明

创意has_many报告

代码:

class User < ActiveRecord::Base
  attr_accessible :name
  has_many :idea
end


class Idea < ActiveRecord::Base
  attr_accessible :desc, :title
  belongs_to :user
  has_many :claim
  has_many :report
end


class Claim < ActiveRecord::Base
  attr_accessible :status
  belongs_to :idea
end

class Report < ActiveRecord::Base
  attr_accessible :reason
  belongs_to :idea
end

此后,rails 迁移将添加时间戳列。您将能够计算状态变化等之间的时间差。

于 2013-01-02T08:17:22.527 回答
0

我不知道红宝石,但至于设计,

将想法报告为无效是否会取消它的资格?

如果没有,您可以有一个报告模型,在其中您将报告的想法与注释一起包含在内。在表示时,您可以在渲染帖子之前查看它。

于 2013-01-02T08:09:33.150 回答