Показывать только контент пользователей

0

Я использую Devise, чтобы пользователи могли войти через Facebook или создать учетную запись на моем веб-сайте. Когда они регистрируются, они могут добавлять фильмы на свою главную страницу, проблема в том, что каждый пользователь видит все фильмы, а не только фильмы, которые они добавили.

В моем movie_controller.rb у меня есть,

def index
  respond_with Movie.all
end

Моя модель movie.rb имеет

belongs_to :user

И моя модель user.rb имеет

has_many :movies

Два вопроса, на данный момент я использую Movie.all который, очевидно, показывает все фильмы, что будет правильным синтаксисом для показа только фильмов, созданных пользователем. Второй вопрос: мне нужно вставить идентификатор пользователя в запись фильма?

Я использую 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);
    }
  };
}]);
  • 0
    current_user.movies загрузит фильмы, которые были зарегистрированы в данный момент. Да, вам нужно добавить столбец с именем user_id к вашей модели Movie .
Теги:
devise

2 ответа

3
Лучший ответ

В вашем методе индекса вы получаете все фильмы. Попробуйте выбрать только фильмы current_user.

def index
  respond_with current_user.movies
end

Для второго вопроса: вы должны добавить user_id в таблицу фильмов. В противном случае вы не сможете получить список фильмов пользователя.

В качестве стандарта базы данных belongs_to :xyz всегда должен присутствовать в db как xyz_id чтобы получить все дочерние записи.

  • 0
    Это исправило это. Чтобы уточнить, у меня в allreadu был user_id в моей таблице фильмов, но мне было интересно, нужно ли мне сохранять идентификатор в фильме, но кажется, что rails / devise делает это сам.
2

Как сказал Дипак, вы можете получить
1. все фильмы из фильма Movie.all
2. Текущий пользователь фильмы из фильма Movie.all
u определенно нужен идентификатор пользователя в фильмах для связи фильмов с пользователем

Ещё вопросы

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