Где / как я могу фильтровать данные current_user для последних событий с плагином timeline_fu? - PullRequest
1 голос
/ 05 мая 2011

Я использую плагин timeline_fu .Я хочу отфильтровать recent_events, чтобы любое событие, имеющее отношение к текущему пользователю, не было recent_event.Более конкретно, если пользователь голосует за видео, и видео принадлежит текущему пользователю, я не хочу, чтобы оно было recent_event для current_user.В моем случае это означает, что когда secondary_object.user == current_user, я не хочу, чтобы recent_event был включен.(Я установил видео в качестве вторичного_объекта).Я не уверен, где и как построить эту логику.

Это код, который создает ассоциацию recent_events и фильтрует их по RECENT_EVENTS_CONDITIONS (он в основном фильтрует их, когда актер событияпользователь, за которым следует текущий пользователь)

    RECENT_EVENTS_CONDITION = '(actor_type = \'User\' AND actor_id IN (SELECT followed_id FROM relationships WHERE follower_id = #{id}))'
    has_many :recent_events, :class_name => "TimelineEvent",
                             :finder_sql => 'SELECT timeline_events.* FROM timeline_events
                                       WHERE ' + RECENT_EVENTS_CONDITION + '
                                       ORDER BY timeline_events.created_at DESC'

Я мог бы поместить его во фрагмент SQL или в параметр :conditions для ассоциации has_many?

Или я могу поставитьименно в опции :if => плагин timeline_fu обеспечивает создание событий.Однако это не было бы идеально, потому что у меня нет доступа к current_user здесь.Как мне это сделать?

1 Ответ

0 голосов
/ 06 мая 2011

Мне удалось решить эту проблему, добавив оператор unless на мой взгляд.Однако я не уверен, что это лучшее решение.

...