我在仅对活动对象执行查询时遇到问题。我在数据库中没有活动列,相反,在模型游戏上,我有以下方法:
def complete?
self.winner ? true : false
end
这样如果一场比赛有赢家,#complete?
将返回 true。我想查询所有会为此方法返回 false 的游戏,有没有办法使用 ActiveRecord 来执行此操作?现在在我的控制器中我只是简单地调用@games = Game.all
,然后在我的部分渲染游戏中,例如:
<% unless game.complete? %>
yada yada
<% end %>
这看起来有点老套,如果我想显示“已完成”的游戏,则需要我编写不同的部分。不管怎样,我想知道控制器中是否有一种方法可以只分配从模型方法返回 true/false 的对象?
快速且简单的类方法怎么样?
class Game < ActiveRecord::Base
def self.completed_games
games = []
Game.all.each { |game| games << game if game.complete? }
return games
end
end
然后打电话Game.completed_games
。您也可以为不完整的游戏制作一个。您也可以将该方法设置为一行,但我将其分解,以便您可以准确地看到发生了什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)