#activerecord #ruby-on-rails-4
#activerecord #ruby-on-rails-4
Вопрос:
У меня странное поведение в коде моей модели, но я не уверен, моя ли это проблема или это какая-то странная проблема с Ruby on Rails.
У меня есть связанный has_many: chat_user #, связанный с ChatUser
и я определил
Class A
def guest
chat_user #returning chat_user from has_many
end
end
У меня есть 2 записи ChatUser, которые связаны с этим классом модели
Когда я вызвал объект чата A .chat_user -> count, и каждый вернул 2 записи.
Когда я вызвал объект .guest -> count, возвращает 2, но каждый цикл только один раз!
В чем может быть проблема? Я использую Rails 4.0.0 с сервером Puma.
Комментарии:
1. странно, в тот момент, когда я меняю свой код обратно на использование chat_user, я снова получаю только 1 запись…
2. ИМО, вы должны включить более чистый код: это не очень понятно, как сейчас. Я собирался посоветовать вам использовать
belongs_to
ассоциацию, но поскольку ваш код неясен, я не уверен, что это вариант.3. привет, фер Гарсия, да, у меня есть belongs_to внутри класса ChatUser для обратной ссылки на ChatA
4. Да, это довольно сложно понять. Однако, одна вещь, которая явно неверна, заключается в
has_many :chat_user
. Это должно говоритьhas_many :chat_users
.5. привет, братше, все та же проблема
Ответ №1:
Я обнаружил проблему, я фактически вернул пользовательский запрос where с ограничением 1, примененный к chat_user, скрытый в функции.