我需要一些Rails 4协会的帮助。我有以下4个型号:
class User < ActiveRecord::Base
has_many :check_ins
has_many :weigh_ins, :through => :check_ins
has_many :repositionings, :through => :check_ins
end
class CheckIn < ActiveRecord::Base
belongs_to :user
has_one :weigh_in
has_one :repositioning
end
class Repositioning < ActiveRecord::Base
# belongs_to :user
belongs_to :check_in
end
class WeighIn < ActiveRecord::Base
# belongs_to :user
belongs_to :check_in
end
问题:如果我以这种方式设置,我将如何单独输入repositionings
和weigh_ins
,但仍然可以通过单次检入链接它们?
答案 0 :(得分:1)
您必须保留其他关联ID之一才能使其正常工作。
例如,让我们说:
correct_checkin_record = CheckIn.where(repositioning: the_repositioning_id)
另一种(更简单的)方法是直接通过用户访问CheckIn:correct_checkin_record = @user.checkin
- 每次都会引入正确的CheckIn。
我已经包含了两个选项,可以帮助确切地了解关系中发生的事情。
答案 1 :(得分:0)
您是否希望用户在不同的页面上输入weigh_ins和重新定位?
将称重和重新定位单独输入但仍然是单次登记的一部分,这种设置很好。
它只需要获取相同的check_in对象并建立与该对象的关联,这可以通过传入check_in ID参数通过控制器完成并执行CheckIn.find(params[:id])