Сохранить несколько значений в столбце

0

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

  • 0
    Я не уверен, откуда происходит movie.json, поскольку я не вижу этого нигде, но есть несколько предложений: 1. Удалите свой ключ API из этого поста, вы не должны делиться им с кем-либо; 2. Ваша функция запроса слишком сложна, $ http () уже возвращает обещание, просто верните $ http ({...}) и не откладывайте его дважды. 3. Не похоже, что вы делаете это, но ваш вопрос звучит так, как будто вы пытаетесь поместить несколько значений в одну ячейку таблицы, чего не следует делать.
  • 0
    Служба trailer выводит несколько значений, потому что фильмы могут иметь несколько трейлеров. Я ищу способ хранить все эти значения.
Показать ещё 1 комментарий

1 ответ

1

Вы ожидаете youtube_trailer но создаете это поле как youtube_link. Попробуйте сопоставить имена переменных.

  • 0
    Я изменил это, но я думаю, что проблема заключается в значении $scope.youtubeTrailer . Потому что, если я получаю console.log в этой области, я получу объект с идентификатором фильма, тогда внутри этого объекта будет другой объект, который имеет значение ключа. Поэтому я думаю, что $scope.youtubeTrailer не имеет правильного значения для сохранения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню