Ограничить пользователя для просмотра только связанных записей в рельсах - PullRequest
0 голосов
/ 27 апреля 2010

У меня есть приложение с тремя связанными вместе Моделями (Profile -> SubModel -> SubSubModel), имеющими много связей.Я пытаюсь ограничить пользователя после входа в систему только получением записей, связанных с его профилем.Я очень плохо знаком с рельсами, и это то, что я пробовал в модели профиля

has_many :submodels, :conditions => {:profile_id => self.id}

, но это возвращает пустой набор данных при вызове с Profile.find_by_id (1) .submodels, как еще могЯ достигаю того, что пытаюсь сделать.Или я должен обработать это в контроллере или представлении вместо этого, я подумал, что это хорошо подходит для модели, чтобы справиться с этим.

Ответы [ 2 ]

1 голос
/ 27 апреля 2010

вам не нужны никакие условия для вызова has_many - по умолчанию он возвращает только подмодели, связанные с профилем.

0 голосов
/ 27 апреля 2010

Если вы назвали свои классы и внешние / первичные ключи для соглашений Rails, просто используйте

class Profile
  has_many :sub_models
end

и пусть Rails выяснит это.

Это предполагает следующее:

  • Профиль переносит таблицу с именем profiles, которая имеет числовой первичный ключ с именем id
  • SubModel переносит таблицу с именем sub_models, которая имеет числовой внешний ключ с именем profile_id
...