我正在编写一个僵尸生存应用程序,我正在尝试选择标记为“alive”的所有用户:alive是一个布尔值。 我在我的用户控制器中编写了一个私有方法但是无法正确获取ruby,有人有指针吗?
def get_alive
@holder = (User.map {|user| user})
@user = @holder.each {|i| if i.alive @user << i}
end
感谢
答案 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}