1

我正在使用timeline_fu 插件。我想过滤recent_events,以便与当前用户有关的任何事件都不是recent_event. 更具体地说,如果用户对视频进行投票,并且该视频属于当前用户,我不希望它成为recent_eventcurrent_user 的 a。就我而言,这意味着当 时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 片段或:conditionshas_many 关联的选项中吗?

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

4

1 回答 1

0

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

于 2011-05-05T21:21:56.623 回答