只显示用户内容

Only show users content

我使用 Devise 让用户通过 Facebook 登录或在我的网站上创建一个帐户。当他们登录时,他们可以将电影添加到他们的首页,问题是每个用户都可以看到所有电影,而不仅仅是他们添加的电影。

在我的 movies_controller.rb 我有,

def index
  respond_with Movie.all
end

我的movie.rb模型有

belongs_to :user

我的 user.rb 模型有

has_many :movies

两个问题,目前我正在使用 Movie.all,它显然显示所有电影,仅显示用户创建的电影的正确语法是什么。第二个问题,电影记录中是否需要插入users 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 部电影。

def index
  respond_with current_user.movies
end

对于第二个问题:你应该在电影 table 中添加 user_id。否则无法获取用户的电影列表。

作为数据库标准,belongs_to :xyz 应始终作为 xyz_id 出现在数据库中以获取所有子记录。

按照 Dipak 的建议,您可以获得
1. Movie.all
的所有电影 2.当前用户电影来自Movie.all
您肯定需要 Movies 中的用户 ID,以便将电影与用户

相关联