在rails中选择某些用户

时间:2011-11-29 04:10:44

标签: ruby-on-rails ruby

我正在编写一个僵尸生存应用程序,我正在尝试选择标记为“alive”的所有用户:alive是一个布尔值。 我在我的用户控制器中编写了一个私有方法但是无法正确获取ruby,有人有指针吗?

 def get_alive
   @holder = (User.map {|user| user})
   @user = @holder.each {|i| if i.alive @user << i}
 end

感谢

4 个答案:

答案 0 :(得分:4)

使用范围查找所有活跃用户。

class User < ActiveRecord::Base
  scope :alive, where(:alive => true)
  # ... the rest of your model ...
end

然后你可以这样做:

@alive_users = User.alive

答案 1 :(得分:1)

你需要提供更多详细信息“持有人”应该是什么......以及为什么要与“我”进行比较

否则:

User.where(:alive => true)

最好将其包含在范围内,如Sean Hill的回答

答案 2 :(得分:1)

如果User是有效记录,您可以直接选择这些用户:

User.where(:alive => true)

或仅针对这些用户进行过滤:

User.all.filter(&:alive)

答案 3 :(得分:0)

您甚至可以在查询

的地方使用此语法
User.where(alive: true)

或者使用select over array对象。但选择很慢

User.all.select{ |user| user.alive == true}