Я использую плагин 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
здесь.Как мне это сделать?