【发布时间】:2012-09-18 18:23:51
【问题描述】:
我想弄清楚我的方法是否合适。我有一个用户模型和一个补偿模型。我需要允许应用程序管理员为每个用户记录分配补偿。这种补偿可能会随着时间的推移而变化,我想跟踪这些变化。经过一番研究,我认为 has_many => :through 是解决此问题的方法,它使用名为 Payments 的第三个模型来加入其他两个模型,并且在该模型内部有 user_id 和补偿 ID。我有以下设置:
class User < ActiveRecord::Base
has_many :payments
has_many :compensations, :through => :payments
class Compensation < ActiveRecord::Base
has_many :payments
has_many :users, :through => :payments
class Payment < ActiveRecord::Base
has_many :Users
has_many :compensations
我的第一个问题是:我是否正确,这是了解我想要实现的目标的最佳方法?我的第二个问题是在表单中包含一个下拉字段(从补偿表中汇集)以填充付款表的最简单方法是什么?不幸的是,我评论过的大多数关于 has_many :through 的网络讨论都集中在模型而不是视图上。
任何帮助将不胜感激。
【问题讨论】:
标签: ruby-on-rails has-many-through