我可以改进这个查询/代码吗?

时间:2013-12-19 03:20:16

标签: ruby-on-rails postgresql ruby-on-rails-4

我有一个Thred模型,通过帖子有很多用户。

我在索引模板中获取所有threds @threds = Thred.all然后render @threds

但是,我使用以下方法检查当前用户是否已在每个thred中回复:

if member && thred.user_posted?(current_user)

使用以下方法:

  def user_posted?(user)
    users = []
    self.users.map { |u| users << u.id }
    users.include?(user.id)
  end

它有效,但我想知道是否有更有效的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

  def user_posted?(user)
    user_ids = self.users.pluck(:id)
    user_ids.include?(user.id)
  end

  def user_posted?(user)
    self.users.where(id: user.id).any?
  end