0

エラーが発生します

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

このrecent_eventsを紹介するまではすべて正常に機能します...

4

1 に答える 1

0

これはUserクラスなどであると想定しており、を使用する#{id}場合は、実際にはユーザーの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 )"
于 2011-11-23T15:16:23.940 に答える