Ruby on rails Rails如何访问项目级别的用户状态

Ruby on rails Rails如何访问项目级别的用户状态,ruby-on-rails,model-view-controller,ruby-on-rails-5,associations,Ruby On Rails,Model View Controller,Ruby On Rails 5,Associations,我有两个模型用户和项目,分别在has_和属于多个协会 用户模型具有列状态 我可以访问项目中用户的状态,如 project.user.status 但是用户可以在不同的项目中我希望他的状态在项目级别而不是id上如果我正确理解了您的问题,问题是您需要将用户的状态与用户关联的潜在多个项目中的一个相关联,但是,您将单个状态关联到单个用户,而不是项目 在这种情况下,您需要将此关联抽象为一个附加模型,例如“UserProjectStatus”,它将与用户和项目关联。您可以通过关联使用has\u many来

我有两个模型用户和项目,分别在has_和属于多个协会 用户模型具有列状态 我可以访问项目中用户的状态,如

project.user.status

但是用户可以在不同的项目中我希望他的状态在项目级别而不是id上如果我正确理解了您的问题,问题是您需要将用户的状态与用户关联的潜在多个项目中的一个相关联,但是,您将单个状态关联到单个用户,而不是项目

在这种情况下,您需要将此关联抽象为一个附加模型,例如“UserProjectStatus”,它将与用户和项目关联。您可以通过关联使用has\u many来实现这一点。这将导致以下几点:

class Project < ApplicationRecord
  has_many :user_project_statuses
  has_many :users, through :user_project_statuses
end

class UserProjectStatus < ApplicationRecord
  belongs_to :user
  belongs_to :project
end

class User < ApplicationRecord
  has_many :user_project_statuses
  has_many :projects, through :user_project_statuses
end
类项目
在任何其他Rails ActiveModel关联中,都可以很好地了解这一点


希望这有帮助

你的意思是,你想将status属性作为数据库迁移移动到Project吗?@SebastianPalma我想要的是一个状态列,它应该基于项目,也就是说,project1.user1.status=>true,project2.user2.status=>false,像这样你可以添加模型和模式来尝试复制你的场景吗?编辑格式。rails中的复合关联名称也是snake_大小写而不是nospace。