Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 下面的代码做什么?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 下面的代码做什么?

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

我在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包含以下代码

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”被称为“格式”。