Проблема с использованием именованной области видимости в вызове «внешнего» метода - PullRequest
0 голосов
/ 12 сентября 2011

Я использую Ruby on Rails 3.0.10 и пытаюсь реализовать метод scope в моей модели (скажем, модель A), включив в него вызов метода, присутствующего в другой модели (скажем, модель) B). То есть в A у меня есть:

scope :not_rel, lambda { |article, user| where("articles.id NOT IN (?)", article.find_owned_by(user).map(&:id)) }

Метод find_owned_by указан в B и предназначен для поиска статей, принадлежащих пользователю. Однако, используя приведенный выше код, я получаю ошибку ActiveRecord::StatementInvalid (Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT ....

Итак, мой вопрос:

  1. Можно ли вызвать метод find_owned_by в scope :not_rel именованной области действия?

  2. Как я могу решить ошибку ActiveRecord::StatementInvalid?


Может ли проблема быть связана с методом map(&:id), вызываемым в модели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...