нет идентификатора для модели? - PullRequest
0 голосов
/ 23 ноября 2011

Я получаю ошибку

undefined local variable or method `id' for #<Class:0x007fe1dc4e3bb0>

при определении вызова sql в моей модели:

  RECENT_EVENTS_CONDITION = "(user_id = #{id}) OR user_id IN (SELECT user_b_id AS user_id FROM user_follows WHERE user_follows.user_a_id = #{id} )"

Код модели

has_many :recent_events,
    :class_name  => "Activity",
    :finder_sql  => 'SELECT activities.* FROM activities
                    WHERE ' + RECENT_EVENTS_CONDITION + '
                    ORDER BY activities.created_at DESC',
    :counter_sql => 'SELECT COUNT(*) FROM activities
                    WHERE ' + RECENT_EVENTS_CONDITION

Все работает доя представляю это недавние события ...

1 Ответ

0 голосов
/ 23 ноября 2011

Я предполагаю, что это класс User или что-то подобное, и я предполагаю, что когда вы используете #{id}, вы действительно просто пытаетесь использовать идентификатор пользователя. Поэтому я бы сделал это вместо:

RECENT_EVENTS_CONDITION = "(user_id = users.id) OR user_id IN (SELECT user_b_id AS user_id FROM user_follows WHERE user_follows.user_a_id = users.id )"
...