Rails 3 разрешения? - PullRequest
       0

Rails 3 разрешения?

0 голосов
/ 26 февраля 2012

В настоящее время у меня есть приложение rails, и у каждого пользователя есть свой профиль, в котором есть видео, фотографии и т. Д. Все работает нормально, но я не могу отделить профиль от другого профиля пользователя.

Пример: У меня есть два пользователя Джек и Боб.URL профиля Jack - jack.mysite.com , а URL профиля Bob - bob.mysite.com .Когда Джек загружает видео, и я захожу на URL jack.mysite.com / videos , я хотел бы видеть только видео с Джека, а не видео с бобом и наоборот.

Как я могу указать рельсам, чтобы они отображали только загрузки пользователей (видео, фотографии и т. Д.) При посещении их профиля?

Ответы [ 2 ]

2 голосов
/ 26 февраля 2012

Убедитесь, что ваши видео и другие материалы, связанные с профилем, связаны с принадлежащей вам моделью пользователя.

Когда вы посещаете URL-адрес, такой как jack.site.nl, и хотите показывать только содержимое jacks, вам нужно передать поддомен в качестве ограничения в ваших маршрутах и ​​подобрать параметр в принимающем контроллере. Вы должны иметь возможность сделать что-то вроде этого в вашем контроллере:

user = User.find_by_username(params[:subdomain])
@videos = Video.where(user_id: user.id)

Оформить заказ на один из поддоменов Railscasts для более подробной информации http://railscasts.com/episodes?utf8=%E2%9C%93&search=subdomain

Когда вам нужно ограничить данные каждого пользователя, вы должны оформить заказ http://railscasts.com/episodes/192-authorization-with-cancan

1 голос
/ 26 февраля 2012

Это немного абстрактно, но вот что вам нужно сделать:

1. Захватите профиль текущего пользователя, поскольку он связан с видео и фотографиями.

# with devise gem:
current_profile = User.profile # if your user has a profile
# otherwise something messy like this maybe:
# current_profile = Profile.where(user_id: current_user).first

2. Захватите видео и фото, которые принадлежат профилю текущего пользователя.

current_users_videos = Video.where( profile_id: current_profile )
current_users_photos = Photo.where( profile_id: current_profile )
# writing a scope on Video and Photo would be cleaner, btw
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...