2015-11-14 2 views
0

У меня есть сервис, который делает запрос,Запроса только содержимое из текущего пользователя

.factory('movieService', ['$http', function($http) { 
    return { 
    loadMovies: function() { 
     return $http.get('/movies_users.json'); 
    } 
    }; 
}]) 

Это выход JSON и является результатом 2 таблиц соединено. Таблица пользователей и таблица фильмов. Как видите, пользователи связаны с 1 или более фильмами.

[ 
    {"id":1, 
    "email":"[email protected]", 
    "movies":[ 
     { 
     "id":4, 
     "title":"Creed", 
     movie_id":"312221" 
     }, 
     { 
     "id":5, 
     "title":"Star Wars: Episode VII - The Force Awakens", 
     "movie_id":"140607" 
     } 
    ] 
    }, 

    {"id":2, 
    "email":"[email protected]", 
    "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 вместо обоих пользователей?

ответ

1

Возможно ли показывать только текущего пользователя на выходе JSON вместо обоих пользователей?

Это означает, что у вас есть система аутентификации (если вы этого не сделаете, вы можете взглянуть на devise).

Вместо того чтобы получать все фильмы, просто загрузите фильмы текущего пользователя.

@movies = current_user.movies 

Для того, чтобы сделать эту работу, вы должны будете иметь отношения между моделью пользователя и модели Movie, что-то вроде этого:

# 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-объекта, он будет более чистым, и вы сможете отображать почти все, что захотите.

+0

'кино = current_user.movies визуализации: = JSON> movie.to_json()' Используя это в моих movies_users контроллер создает выход JSon только информацию из текущего пользователя! –

+0

Что вы имеете в виду? Информация самого пользователя? – Statyx

+0

Теперь, когда я нахожусь в localhost: 3000/movies_users.json Я только просматриваю фильмы от текущего пользователя (который я искал!) –

Смежные вопросы