使用timeline_fu插件在哪里/如何使用current_user数据过滤recent_events?

时间:2011-05-05 05:07:23

标签: ruby-on-rails ruby ruby-on-rails-3 feeds timeline

我正在使用timeline_fu plugin。我想过滤recent_events,以便与当前用户有关的任何事件都不是recent_event。更具体地说,如果用户对视频进行投票,并且视频属于当前用户,我不希望它对于current_user是recent_event。就我而言,这意味着在secondary_object.user == current_user时,我不希望包含recent_event。 (我将视频设置为secondary_object)。我不确定在何处以及如何构建这种逻辑。

这是创建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片段或has_many关联的:conditions选项中吗?

或者我可以将它放在timeline_fu插件为事件创建提供的:if =>选项中。但是这不太理想,因为我在这里无法访问current_user。我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

我能够通过在我的视图中添加unless语句来解决此问题。但是,我不确定这是否是最佳解决方案。