我的Rails应用有User
型号和Idea
型号。每个用户可以有很多想法,每个想法属于一个用户(或没有)。用户使用Idea控制器的claim
操作获取创意的所有权,并使用release
操作发布创意。
到目前为止,真的很简单。但我刚刚意识到我希望这样做多一点,现在我不确定如何继续:基本上,我希望用户能够“报告”有关错误/无效创意的想法,以及注释指定报告的原因。
我还想跟踪有关声明主题的指标 - 在标记为已提交之前声明了多长时间(用于管理博客帖子),等等。
在一个不相关的问题中,有人建议我在我的应用中需要一个Claim
模型来进行这种复杂的跟踪。这对我来说很有意义,但我真的不确定该模型将如何构建,以及它将如何工作。它会像日志吗?如果是这样,我将如何确定每个想法的当前想法状态?
对此的任何见解都是最受欢迎的。
答案 0 :(得分: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迁移会为时间戳添加列。你可以计算出状态变化之间的时差等。
答案 1 :(得分:0)
我不知道红宝石,但至于设计,
将一个想法报告为无效会使其失去资格吗?
如果没有,您可以使用报告模型,其中包含Notes中报告的想法。在表示时,您可以在渲染帖子之前查看它。