Я пытаюсь сохранить несколько значений, полученных из запроса JSONP, в мою базу данных rails, поэтому я могу показать разные результаты позже.
Я создал функцию в моем контроллере, как это,
movieAdd.trailer(movie.id)
.then(function(response){
$scope.youtubeTrailer = response;
console.log ($scope.youtubeTrailer)
Это запрашивает службу trailer
в моем movieService.js,
var service = {};
var baseUrl = 'http://api.themoviedb.org/3/movie/';
function httpPromise (url) {
var deferred = $q.defer();
$http({
method:'JSONP',
url: url
})
.success(function(data){
deferred.resolve(data);
})
.error(function(){
deferred.reject();
});
return deferred.promise;
}
service.trailer = function(youtube_link){
return httpPromise(
baseUrl + youtube_link + '/videos?api_key=a8f7039633f2065942c**a28d7cadad4&callback=JSON_CALLBACK'
)
};
И я сохраняю результаты в области youtubeTrailer
.
Тогда у меня есть функция create,
createMovie.create({
release_date: $scope.movieListID.release_date,
youtube_link: $scope.youtubeTrailer.key,
imdb_rating: $scope.movieImdbRating.imdbRating,
title: $scope.movieListID.original_title,
image: $scope.movieListID.poster_path,
movie_id: $scope.movieListID.id
}).then(init);
Я добавил параметр в свой movie_controller.rb
def movie_params
params.require(:movie).permit(:title, :image, :release_date, :youtube_trailer, :imdb_rating, :movie_id)
end
И я создал столбец в моей таблице фильмов
t.string "youtube_trailer"
Но когда я проверяю свои фильмы.json, он говорит, что youtube_trailer":null
Напомню, я получаю такой вывод,
{"id":1893,"results":[
{"id":"533ec65ac3a3685448000a24","iso_639_1":"en","key":"bD7bpG-zDJQ","name":"Trailer 1","site":"YouTube","size":720,"type":"Trailer"},
{"id":"533ec65ac3a3685448000a25","iso_639_1":"en","key":"UgDhFgSTPIw","name":"Trailer 2","site":"YouTube","size":720,"type":"Trailer"}
]}
И я пытаюсь сохранить оба key
значения в моей базе данных, чтобы впоследствии использовать их.
Вы ожидаете youtube_trailer
но создаете это поле как youtube_link
. Попробуйте сопоставить имена переменных.
$scope.youtubeTrailer
. Потому что, если я получаю console.log в этой области, я получу объект с идентификатором фильма, тогда внутри этого объекта будет другой объект, который имеет значение ключа. Поэтому я думаю, что $scope.youtubeTrailer
не имеет правильного значения для сохранения.
trailer
выводит несколько значений, потому что фильмы могут иметь несколько трейлеров. Я ищу способ хранить все эти значения.