在角度视图中,我想显示模型的所有实例以及来自该模型关联模型的一些字段。提名belongs_to用户和用户has_many提名。用户有一个存档的布尔属性,我需要将其传递给角度视图。以下是提名数据目前如何传递给角度应用程序。
api - nominations_controller
def index
render json: Nomination.all
end
对于每个提名,我想包括提名所属的用户的存档属性。在rails视图中,我可以通过Nomination.first.user.archived访问该属性。如何将该属性作为json数据的一部分传递?我试过了
def index
render json: User.includes(:nominations).where.not(nominations: {user_id: nil})
end
它为我提供了我想要的用户和归档属性以及所有其他关联,例如团队,但它没有通过提名。
答案 0 :(得分:0)
您可以使用.includes()
来包含父对象中的数据。类似的东西:
def index
render json: Nomination.includes(:user)
end
答案 1 :(得分:0)
原来api的创建者已经覆盖了User模型中的serializable_hash方法,所以我不得不为该方法添加提名。一旦我这样做,这就有效了。
def index
render json: User.includes(:nominations).where.not(nominations: {user_id: nil})
end
我已经重构它以使用范围
def index
render json: User.includes(:nominations).has_nominations
end
在user.rb
中def self.has_nominations
where.not(nominations: {user_id: nil})
end