【发布时间】:2011-07-20 09:37:52
【问题描述】:
我是 Rails 新手,现在正在努力学习,希望有人能提供帮助。
我有 3 个用于用户、意见和投票的模型,具有一对多的关系。每个user has_many :opinions 和has_many :votes。每个opinion has_many :votes 和belongs_to :user。每个vote belongs_to user 和belongs_to opinion。 Votes 表包含 :decision (boolean)、:opinion_id 和 :user_id 列。意见表只有 :content 列。
我的用例是用户添加意见,然后其他用户在查看每个意见(显示视图)时可以同意或不同意。
在意见显示视图中,我希望有两个带有“同意”和“不同意”的提交按钮。当用户提交投票时,我需要创建此投票(真或假)并更新投票表的 user_id 和 opinion_id 字段。我设法为每个父母单独做这件事,但不是为了同一张票。任何帮助将非常感激。
【问题讨论】:
-
如果投票只是“同意”或“不同意”,我建议不要将其设为单独的模型。将其视为 Opinon 模型的一个属性。
attr_accessible :vote。然后当用户点击同意或不同意提交按钮时 update_attribute。如果要保留 Vote 模型,请考虑将其与 User 模型分开,以便User has_many :opinions和Opinion has_many :votes,但 Vote 不属于 User。据我了解,用户不能对没有意见的投票。 -
感谢您的建议,但我认为它不适用于我的特定情况。我需要跟踪用户的投票,而他们投票的意见不属于这些用户,即该意见属于另一个用户,并且它有很多来自其他用户的投票。
标签: ruby-on-rails ruby-on-rails-3 activerecord rails-models