我有两个表Projects和Users,我有一个中间表UserProjects,其中仅包含用户和项目的ID。我需要获取UserProject表的created_at字段,以便可以在视图中向当前用户显示项目的分配日期。
我尝试了current_user.user_projects.includes(:projects)
current_user.user_projects.includes(:projects)
它返回了一个关联,但我无法获得current_user.user_projects.includes(:projects).created_at
这样的created_at字段的值答案 0 :(得分:0)
如果您的users_projects
表中没有created_at
列,则此列将不起作用。
使联接表成为带有时间戳的适当模型。
然后您可以做类似的事情
current_user.user_projects.each do |user_project|
puts "Project #{user_project.project.name} was assigned on #{user_project.created_at}"
end
如果一个用户只能分配一次相同的项目,则为[:project_id, :user_id]
添加唯一索引
如果要显示特定项目:
current_user.user_projects.find_by(project_id: params[:project_id])
您还可以为项目添加:through
关联:
class User
...
has_many :projects, through: :user_projects
...
end