У меня есть рабочая ассоциация HABTM между моделями
Сообщений и пользователей ... Таблица posts_users такая же, как рекламируется, и обе имеют необходимые has_and_belongs_to_many в своей модели. Rb
И если яиспользуйте User.find(1).posts
, он найдет все сообщения с действительным именем пользователя
Мой вопрос заключается в том, как справиться с этой ситуацией.
Я хочу использовать
user.posts.find(1234)
илина самом деле из контроллера эквалайзер:
current_user.posts.find(params[:id])
Чтобы защитить себя от других пользователей, прыгающих вокруг.Однако это использование имеет некоторые странные результаты.Это работает, но вместо того, чтобы id являлся действительным идентификатором для определенного поста или всех постов, он возвращает идентификатор 1, а не, скажем, реальный из 1234. Так что дальнейшие объединения, такие как:
user.posts.find(1234).comments
не работают или являются недействительными.
Я попытался добавить all
несколько мест для хорошей меры, поскольку это иногда работало для других неловких ситуаций в прошлом.С несколькими незнакомыми встречами все еще.
user.posts.all.first
работает и возвращает правильный идентификатор !, но использование первого не очень полезно.user.posts.all.find(6933)
возвращает #<Enumerable::Enumerator:0x105343630>
Также пробовал различные комбинации с (:post_id => 1234)
, возвращая id всегда 1.
Есть идеи?