要做到这一点是建立在user
和project
模型之间的'has-many-through'
(HMT)的关系,并创建关系的模型串行的最好方法。
has_many :users_projects
其原因是,这些模型之间的关系中包含的附加数据:
class UserProjectSerializer < ActiveModel::Serializer
...
end
这将随后在UserSerializer
经由使用。
为了实现HMT,你需要创建user_projects
模型和定义在相关车型的HMT关系:
users_project.rb
class UserProjects < ActiveRecord::Base
belongs_to :user
belongs_to :project
end
user.rb
class User < ActiveRecord::Base
has_many: users_projects
has_many: projects, through: :user_projects
end
project.rb
class Project < ActiveRecord::Base
has_many: users_projects
has_many: users, through: :user_projects
end