Как я могу структурировать свое приложение на Rails 3.x, чтобы вошедший в систему пользователь мог видеть только записи, связанные с группой, к которой он принадлежит?
Например, (Тема футбола)
Представьте себе эти модели:
Модель команды, представляющая каждую из 30 профессиональных футбольных команд.
Модель пользователя, использующая устройство для аутентификации.Каждый пользователь имеет ассоциацию team_id.
Модель игрока, представляющая каждого игрока в NFL: name: string, team_id: integer.
Каждый пользователь является главным тренером и должен иметь возможность тольковидеть своих игроков в плеерах # index.Rails знает об этом, потому что с главным тренером (пользователем), как и игроками, связан team_id.
Теперь, имея всего два контроллера (Team, Player), кажется, что довольно легко вручную вручную набрать индекс иCRUD-методы для отображения только связанных записей current_user.
def index
@players = Player.where(current_user.team_id = ?, 'player.team_id')
end
Но представьте, что у вас было 6-10 контроллеров: билеты, сделки, сотрудники, контракты и т. Д. ..... (у всех есть связь team_id)
Существует ли глобальный способ для Rails отображать только записи, связанные с командой current_user?
И ... как Rails не позволяет пользователям вводить случайные идентификаторы в URL-адрес, чтобы найти записи, не связанные с его team_id.(Представьте, что тренер Redskins наберет http://www.thesite.com/players/224/edit) и сможет редактировать игрока Cowboys, у которого player_id = 224.
Спасибо.