我有一个提出请求的服务,
.factory('movieService', ['$http', function($http) {
return {
loadMovies: function() {
return $http.get('/movies_users.json');
}
};
}])
这是JSON输出,是两个表连接的结果。用户表和电影表。如您所见,用户与一部或多部电影相关联。
[
{"id":1,
"email":"peter@peter.nl",
"movies":[
{
"id":4,
"title":"Creed",
movie_id":"312221"
},
{
"id":5,
"title":"Star Wars: Episode VII - The Force Awakens",
"movie_id":"140607"
}
]
},
{"id":2,
"email":"jan@jan.com",
"movies":[
{
"id":4,
"title":"Creed",
movie_id":"312221"
}
]
}
]
这是movies_users_controller.rb
def index
movie = Movie.all
render :json => movie.to_json(:include => :users)
end
是否可以仅在JSON输出中显示当前用户而不是两个用户?
答案 0 :(得分:1)
是否可以仅在JSON输出中显示当前用户 而不是两个用户?
这意味着你有一些身份验证系统(如果你没有,你可以查看devise)。
取代所有电影,只需获取当前用户的电影。
@movies = current_user.movies
为了完成这项工作,您必须在用户模型和电影模型之间建立关系,如下所示:
# user.rb
has_many :user_movies
has_many :movies, through: user_movies
# user_movie.rb
belongs_to :movie
belongs_to :user
# movie.rb
has_many :user_movies
has_many :users, through: :user_movies
此外,您似乎正在构建一个API,我建议使用类似jbuilder的东西来构建您的json对象,它会更干净,您将能够显示您想要的几乎所有内容。