4

我是 ruby​​ 新手,编写了这段代码并且可以工作,但我知道这不是最优雅的方式,你能帮我用 ruby​​ 方式重构它吗?

  #Ckeck that is not a repetead user
  next if Profile.exists?(:screen_name => t.from_user) 
  next if SearchResults.exists?(:username => t.from_user)
  next if usernames.include? t.from_user
4

1 回答 1

2

我认为你的方法很好,但就个人而言,我会做这样的事情(提供的信息)......

用于reject将您的收藏限制为所需的元素。

def repeat_user(user, usernames)
  Profile.exists?(:screen_name => user.from_user)    ||
  SearchResults.exists?(:username => user.from_user) ||
  usernames.include? user.from_user
end

User.all.reject{ |user| repeat_user user, usernames }.each do |user|
  # do your stuff here
end
于 2012-06-12T17:20:44.027 回答