我有两张桌子,一张叫电影,一张叫用户。用户可以将电影添加到他们的监视列表中。当用户这样做时,应用程序在我的电影表中创建一个新的记录,其中包含电影名称,ID,发布日期等。因此,可以有3个同一部电影的记录。但所有用户ID都不同。这不是首选。
所以我试图找出如何检查记录(具有movie_id
值的电影)是否已经存在。如果电影已存在,则将当前用户ID添加到user id
列,以便多个用户可以共享同一个电影记录。如果它还不存在,请创建一个新记录。
这是我在movies.rb控制器中的当前创建功能,
def create
respond_with Movie.create(movie_params.merge(user_id: current_user.id))
end
在我的电影模型中,我有,
belongs_to :user
我正在使用Angular作为我的前端框架,所以这是我的角度addMovie函数,
movieAdd.add()
.then(function(response){
$scope.movieListID = response;
console.log ('Not empty' + $scope.movieListID)
for (var i = 0; i < $scope.movieListID.releases.countries.length; i++) {
var release = $scope.movieListID.releases.countries[i];
if (release['iso_3166_1'] == 'NL') {
releaseNL = release;
}
}
if(typeof releaseNL === 'undefined'){
// With release date
Notification($scope.movieListID.original_title + ' is toegevoegd, maar heeft nog geen Nederlandse premiere datum.');
createMovie.create({
title: $scope.movieListID.original_title,
release_date: $scope.movieListID.release_date,
image: $scope.movieListID.poster_path,
movie_id: $scope.movieListID.id
}).then(init);
} else {
Notification.success($scope.movieListID.original_title + ' is toegevoegd.');
createMovie.create({
title: $scope.movieListID.original_title,
release_date: releaseNL.release_date,
image: $scope.movieListID.poster_path,
movie_id: $scope.movieListID.id
}).then(init);
};
})
答案 0 :(得分:1)
您可以通过关系here找到有关has-and-belongs-to-many和has-many的信息。我会使用这两种方法之一来设置用户和电影之间的关系。然后,我认为,在电影功能中你会: