Ruby on rails 下面的代码做什么?
我在rails中创建了一个项目演示。然后,我创建了一个框架应用程序,为rail_apps/demo>script server产品命名为:stiring,description:text,url:string demo rail_apps/demo> script server products title :stiring,description :text,url: string 然后我给了 http://localhost:3000/products/ products_controller.rb包含以下代码Ruby on rails 下面的代码做什么?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在rails中创建了一个项目演示。然后,我创建了一个框架应用程序,为rail_apps/demo>script server产品命名为:stiring,description:text,url:string demo rail_apps/demo> script server products title :stiring,description :text,url: string 然后我给了 http://localhost:3000/products/ products_controlle
class ProductsController < ApplicationController
# GET /products
# GET /products.xml
def index
@products = Product.find(:all)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
end
end
class ProductsController@products}
结束
结束
结束
但我真的无法理解这四行代码。谁能给我一个线索吗
@products = Product.find(:all)
从数据库中获取所有产品
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
是RoR中的常见模式。控制器根据请求呈现不同的视图。例如,如果您请求/products
,它会将产品传递到index.html.erb
视图,该视图只是一个html模板。如果请求是/products.xml
,它会将产品序列化为xml文件,并将此文件作为响应发送
从数据库中获取所有产品
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
是RoR中的常见模式。控制器根据请求呈现不同的视图。例如,如果您请求
/products
,它会将产品传递到index.html.erb
视图,该视图只是一个html模板。如果请求是/products.xml
,它会将产品序列化为一个xml文件,并将此文件作为响应发送。要呈现索引
操作,首先查找所有产品并将其分配给变量@products
,然后根据客户端的需要使用HTML或xml进行响应(例如,如果URL以.xml
结尾,则客户端需要xml
如果客户端需要html,则呈现index.html.erb
(Rails根据控制器名称和操作名称查找模板本身,因此ProductsController
和index
使Rails查找app/views/products/index.html.erb
)
如果客户端需要XML,则从
@products
变量呈现XML(Rails可以通过查看其属性自动将ActiveRecord对象或对象数组序列化为XML).要呈现索引
操作,首先查找所有产品并将其分配给变量@products
,然后根据客户端需要的内容(例如,如果URL以.XML
结尾,则客户端需要XML)使用HTML或XML进行响应
如果客户端需要html,则呈现index.html.erb
(Rails根据控制器名称和操作名称查找模板本身,因此ProductsController
和index
使Rails查找app/views/products/index.html.erb
)
如果客户端需要XML,则从
@products
变量呈现XML(Rails可以通过查看其属性自动将ActiveRecord对象或对象数组序列化为XML).response_to do | format |…end似乎是一种循环结构。它真的是一个循环吗?不,它更像是一个模式匹配子句。思考case/when(Java/JS/C++中的switch/case)。response_to do | format |…end似乎是一种循环结构。它真的是一个循环吗?不,它更像一个模式匹配子句。思考case/when(Java/JS/C++中的switch/case)。谢谢你,Darin,你能告诉我respond_to是不是一个循环吗?它似乎是一个循环。在这种情况下,客户端无论如何都会请求一次。do循环的真正目的是什么?@CHID,它不是一个循环,而是一个块。你可以看一下,以获得更详细的解释。你应该提到/products只是默认为/products.html,其中“.html”和“.xml”被称为“格式”。谢谢你,Darin,你能告诉我respond_to是不是一个循环吗?它似乎是一个循环。在这种情况下,客户端无论如何都会请求一次。do循环的真正目的是什么?@CHID,它不是一个循环,而是一个块。你可以看一下,以获得更详细的解释。你应该提到/products只是默认为/products.html,其中“.html”和“.xml”被称为“格式”。