我在users
和projects
到user_project
之间有很多关系。我知道我可以在User Serializer中添加has_many :projects
(在项目序列化器中反之亦然),以便在用户内嵌套项目。
但是我在user_projects
表中还有一些额外的字段(例如,用户参与相应项目的开始和结束日期),我不知道将它们包含在返回的json中的正确方法是什么。我应该为在项目属性中包含start_date
的用户内部返回的项目创建一个特殊的序列化程序,还是有另一种方法可以做到这一点?
答案 0 :(得分:1)
执行此操作的最佳方法是在JFrame#pack
和'has-many-through'
模型之间建立user
(HMT)关系,并为关系模型创建序列化程序。< / p>
project
然后将在class UserProjectSerializer < ActiveModel::Serializer
...
end
via:
UserSerializer
原因是模型之间的关系包含额外的数据。
要实施HMT,您需要创建has_many :users_projects
模型并在相关模型中定义HMT关系:
users_project.rb
user_projects
user.rb
class UserProjects < ActiveRecord::Base
belongs_to :user
belongs_to :project
end
project.rb
class User < ActiveRecord::Base
has_many: users_projects
has_many: projects, through: :user_projects
end
答案 1 :(得分:0)
之前我遇到过类似的问题而且我使用了rabl。有一个很好的railscasts教程可以帮助您入门。