Rails - 渲染自定义xml

Exb*_*xbi 5 ruby xml ruby-on-rails ruby-on-rails-3

谁能举例说明如何在rails控制器中使用FOR和IF循环?

这是一些"伪代码"(使用非常松散的术语),它有望说明我想做什么 -

为了这个例子,我使用一个名为'chairs'的表,我想查询'age'列以显示所有(例如)2岁的椅子.[:id]是我传入它的数字变量.在我的工作项目中,我已经设置了路由,并且能够呈现基本的:所有xml到URL,但是我需要它来显示特定的记录,如下所示......

For each chair in chairs
    if chair.age = [:id]
        render records to xml
    end
end
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助.

编辑 - 我理解FOR和IF循环是如何工作的,只需要一些如何在rails控制器中实现上述功能的例子.

Exb*_*xbi 1

感谢您的建议,帮助很大。这是我为使其正常工作所做的,也许其他人会发现它有用(我不知道这是否是最好的方法,但它有效)

首先在routes.rb中设置路线 - 匹配 '/chair/age/:id', :controller=> 'chairs', :action=> 'displaychairs'

然后在椅子控制器上 -

def displaychairs
    chid=params[:id]
    @chairs = Chair.find(:all, :conditions => [ "age = ?",chid])

        respond_to do |format|
            format.xml { render :xml => @chairs }
    end
end
Run Code Online (Sandbox Code Playgroud)

然后我可以在我的应用程序中使用 /chair/age/*.xml (其中 * 是传入的变量(椅子年龄)。