调用中间属性

时间:2019-07-26 07:36:38

标签: ruby-on-rails ruby

我有两个表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字段的值

1 个答案:

答案 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