【发布时间】:2015-08-26 09:57:14
【问题描述】:
我使用 Devise 让用户通过 Facebook 登录或在我的网站上创建帐户。当他们登录时,他们可以将电影添加到他们的首页,问题是每个用户都可以看到所有电影,而不仅仅是他们添加的电影。
在我的 movies_controller.rb 中,
def index
respond_with Movie.all
end
我的 movie.rb 模型有
belongs_to :user
我的 user.rb 模型有
has_many :movies
两个问题,目前我正在使用Movie.all,它显然显示了所有电影,只显示用户创建的电影的正确语法是什么。第二个问题,我需要在电影记录中插入用户ID吗?
我使用 Angular 作为我的前端框架,
控制器,
$scope.addMovie = function() {
movies.create({
title: $(event.currentTarget).parent().find('.title').text()
}).then(init);
};
还有服务,
.factory('movies', ['$http', function($http){
return{
create: function(movie){
return $http.post('/movies.json', movie);
}
};
}]);
【问题讨论】:
-
current_user.movies将加载当前登录用户的电影。是的,您需要将名为user_id的列添加到您的Movie模型中。
标签: ruby-on-rails angularjs devise