Странное поведение в модели (Ruby on Rails 4)

#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, скрытый в функции.