我正在尝试将从JSONP请求中检索到的多个值存储到我的rails数据库中,以便稍后显示不同的结果。
我在我的控制器中创建了一个像这样的函数,
movieAdd.trailer(movie.id)
.then(function(response){
$scope.youtubeTrailer = response;
console.log ($scope.youtubeTrailer)
这会在我的movieService.js中请求trailer
服务,
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
范围内。
然后我有一个创建功能,
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);
我已将参数添加到我的movies_controller.rb
def movie_params
params.require(:movie).permit(:title, :image, :release_date, :youtube_trailer, :imdb_rating, :movie_id)
end
我在电影表中创建了一个专栏
t.string "youtube_trailer"
但是当我查看我的电影时,它会说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
值存储在我的数据库中,以便以后可以使用它们。
答案 0 :(得分:1)
您期待youtube_trailer
,但请将此字段设为youtube_link
。请尝试匹配变量名称。