我有2个模型,例如User
和Tracking
Tracking
模型有以下6列
此模型的目标是知道谁访问了我的users/show.html.erb
页面。
每个用户都想知道谁看了我的页面。
如何在User
和Tracking
型号中建立关联?
是这样的吗?
模型/ user.rb
has_many: trackings
模型/ tracking.rb
belongs_to: user
belongs_to: user, :foreign_key => "target_user_id", :class_name => "TargetUser"
毕竟,
current_user.tracking.target_user
显示current_user访问的用户?
然后我如何检索访问current_user的跟踪记录? 在这种情况下我该如何编码?
答案 0 :(得分:1)
在您的项目中没有名称为" TargetUser"的班级, :class_name 选项用于指定要设置关联的模型的名称
models / tracking.rb 中的更改您的代码,
belongs_to: user
belongs_to: target_user, :foreign_key => "target_user_id", :class_name => "User"
然后您可以通过tracking.target_user
从跟踪中访问用户答案 1 :(得分:1)
首先,您的accessed_at
列是多余的,您只需将其委托为:
delegate :accessed_at, to: :created_at
<强>模型/ tracking.rb 强>
belongs_to: tracked_user, foreign_key: 'target_user_id', class_name: 'User'
然后遍历它:
current_user.trackings.each do |t|
puts t.tracked_user_id
end