我想弄清楚我的方法是否正确。我有一个用户模型和一个补偿模型。我需要允许应用程序管理员为每个用户记录分配补偿。这种补偿可能会随着时间的推移而变化,我想跟踪这些变化。经过一番研究,我认为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的网络讨论都集中在模型而不是视图上。
任何援助将不胜感激。