Проблемы с использованием идентификатора из модели внутри пользовательского SQL-запроса в Rails - PullRequest
0 голосов
/ 12 апреля 2010

Я хочу сделать модельный класс, который ассоциируется с собой на Rails. В основном, у пользователя есть друзья, которые также являются пользователями. Я набрал следующее внутри класса модели User:

  has_many :friends, 
    :class_name => "User", 
    :foreign_key => :user_id, 
    :finder_sql => %{SELECT users.*
      FROM
        users INNER JOIN friends
          ON (users.id = friends.user_id OR users.id = friends.friend_id)
      WHERE users.id <> #{id}}

Но забавный факт заключается в том, что кажется, что этот finder_sql вызывается дважды, когда я набираю User.first.friends на irb. Почему?

Ответы [ 2 ]

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

Я только что прочитал этот пост:

http://railsblaster.wordpress.com/2007/08/27/has_many-finder_sql/

Я должен был использовать одинарные кавычки, чтобы охватить finder_sql вместо% {}

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

Бросьте :finder_sql и обратитесь к этому:

http://guides.rubyonrails.org/association_basics.html#self-joins

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