有谁能举例说明如何在rails控制器中使用for和if循环吗?
这里有一些“伪代码”(使用术语非常松散),希望能说明我想做什么-
为了这个例子,我使用了一个名为“椅子”的表,我想查询“年龄”列以显示(例如)2岁的所有椅子。[:id]是我要传递给它的一个数字变量。
在我的工作项目中,我已经设置了路由,并且能够将basic:all xml呈现到url,但是我需要它显示特定的记录,如下所示……
For each chair in chairs
if chair.age = [:id]
render records to xml
end
end
希望能得到帮助。
编辑-我了解for和if循环是如何工作的,只需要一些如何在rails控制器中实现上述功能的示例。
最佳答案
在椅子模型中:
class Chair < ActiveRecord::Base
:scope :years_old, lambda { |time_ago| { :conditions => ['age == ?', time_ago] }
end
然后你可以:
render :xml => Chairs.years_old(2)
我对render的确切语法不太清楚,但是创建作用域可以让您的控制器代码更具可读性,而不必在其中执行循环/条件语句。只要把你的范围命名得清楚易懂…
这一切都假设您希望获得年龄==2的所有椅子,而不仅仅是某些其他搜索的子集。如果这个假设是错误的,那么卢卡佩特的答案更好。