Rails条件声明问题

时间:2009-10-18 18:09:19

标签: ruby-on-rails conditional-statements

我不知道为什么我遇到一些如此简单的问题,但这个条件陈述是行不通的。

@battalion = Battalion.find(params[:id])
@soldier = @battalion.soldiers(:conditions => ["seniorleader = ?", "No"]) 

这显示了士兵阵列,但没有反映我设定的条件。

我确信我做的事情非常简单,但我似乎无法弄清楚它是什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

根据你在第二行中的语法,你将条件作为士兵的属性传递,而不是实际上削减你的列表。你可以尝试:

@soldier = @battalion.soldiers.find(:all, :conditions => ["seniorleader = ?", "No"])

find方法可以帮助你对你的士兵进行排序,我还建议你在第一行做一些急切的装载,

@battalion = Battalion.find(params[:id], :include => "soldiers")

所以@battalion对象已经拥有所有士兵信息,并且不需要对第二行进行单独的SQL查询。希望这会有所帮助。