У меня есть функция, которая сохраняет ссылки на YouTube фильмы,Как хранить несколько значений в записи
angular.forEach(response.results, function(item){
$scope.youtubeTrailer = [];
$scope.youtubeTrailer.push(item.key);
var youtubeLink = $scope.youtubeTrailer.toString();
createTrailer.create({
link: youtubeLink,
movie_id: $scope.movieListID.id
}).then(init);
})
трейлере рельсы контроллер,
def create
respond_with Trailer.create(trailer_params)
end
private
def trailer_params
params.require(:trailer).permit(
:link,
:movie_id
)
end
И модель прицепа рельсы,
belongs_to :movie
forEach
создает новую запись для каждого трейлера.
{"id":1,"movie_id":"312221","link":"LsjX5dqHLuw","created_at":"2016-01-05T14:15:35.681Z","updated_at":"2016-01-05T14:15:35.681Z"},
{"id":2,"movie_id":"281957","link":"EIELwayIIT4","created_at":"2016-01-05T14:46:25.248Z","updated_at":"2016-01-05T14:46:25.248Z"},
{"id":3,"movie_id":"291270","link":"WQkHA3fHk_0","created_at":"2016-01-05T14:50:15.563Z","updated_at":"2016-01-05T14:50:15.563Z"},
{"id":4,"movie_id":"291270","link":"LUloSK4x3qc","created_at":"2016-01-05T14:50:15.651Z","updated_at":"2016-01-05T14:50:15.651Z"},
{"id":5,"movie_id":"209112","link":"nIGtF3J5kn8","created_at":"2016-01-05T15:21:11.372Z","updated_at":"2016-01-05T15:21:11.372Z"},
{"id":6,"movie_id":"209112","link":"yViIi3gie2c","created_at":"2016-01-05T15:21:11.469Z","updated_at":"2016-01-05T15:21:11.469Z"},
{"id":7,"movie_id":"209112","link":"Onh7NbZ7F8o","created_at":"2016-01-05T15:21:11.550Z","updated_at":"2016-01-05T15:21:11.550Z"},
{"id":8,"movie_id":"312221","link":"LsjX5dqHLuw","created_at":"2016-01-05T15:26:19.701Z","updated_at":"2016-01-05T15:26:19.701Z"},
Как вы можете видеть, что это создает 3 записи для 3 трейлеров с тем же movie_id
>209112
.
Можно ли сохранить данные, чтобы они сгруппировали эти трейлеры с одним и тем же movie_id вместе? Так это будет выглядеть так,
{"id":312221,
"links"{
{"link":"LsjX5dqHLuw","created_at":"2016-01-05T14:15:35.681Z","updated_at":"2016-01-05T14:15:35.681Z"},
}
}
{"id":281957,
"links"{
{"link":"EIELwayIIT4","created_at":"2016-01-05T14:46:25.248Z","updated_at":"2016-01-05T14:46:25.248Z"},
}
}
{"id":291270",
"links"{
{"link":"WQkHA3fHk_0","created_at":"2016-01-05T15:21:11.550Z","updated_at":"2016-01-05T15:21:11.550Z"},
{"link":"yViIi3gie2c","created_at":"2016-01-05T15:21:11.469Z","updated_at":"2016-01-05T15:21:11.469Z"},
{"link":"LUloSK4x3qc","created_at":"2016-01-05T15:21:11.372Z","updated_at":"2016-01-05T15:21:11.372Z"},
}
}
{"id":209112",
"links"{
{"link":"Onh7NbZ7F8o","created_at":"2016-01-05T15:21:11.550Z","updated_at":"2016-01-05T15:21:11.550Z"},
{"link":"yViIi3gie2c","created_at":"2016-01-05T15:21:11.469Z","updated_at":"2016-01-05T15:21:11.469Z"},
{"link":"nIGtF3J5kn8","created_at":"2016-01-05T15:21:11.372Z","updated_at":"2016-01-05T15:21:11.372Z"},
}
}
{"id":312221,
"links"{
{"link":"LsjX5dqHLuw","created_at":"2016-01-05T15:26:19.701Z","updated_at":"2016-01-05T15:26:19.701Z"}
}
}
Я не уверен, если вы неправильно поняли вопрос, или я не понимаю ответа, но я не вижу, как решить мою проблему. Моя проблема в том, что функция forEach создает новую запись для каждой ссылки трейлера. Я хотел бы создать один содержащий объект, который имеет все соответствующие ссылки трейлера. –
Да, я неправильно понял, я думал, что ссылка была объектом. То, что вы действительно хотите, это список фильмов с вложенными трейлерами. Вы хотите, чтобы все фильмы для трейлеров вы только что загрузили? – Swards
Вместо того чтобы сохранить значение каждой ссылки и значение movie_id в одной записи, я хотел бы создать одну запись со всеми значениями ссылок для этого фильма. Таким образом, результат будет похож на '{" id ": 1," movie_id ": 312221, " ссылки "{ {" link ":" LsjX5dqHLuw "," created_at ":" 2016-01-05T15: 26: 19.701 Z "," updated_at ":" 2016-01-05T15: 26: 19.701Z "} } }' –