将多个值保存到列中

时间:2015-12-03 18:49:51

标签: ruby-on-rails angularjs

我正在尝试将从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值存储在我的数据库中,以便以后可以使用它们。

1 个答案:

答案 0 :(得分:1)

您期待youtube_trailer,但请将此字段设为youtube_link。请尝试匹配变量名称。