Ruby on rails 为什么控制器需要多格式渲染?

Ruby on rails 为什么控制器需要多格式渲染?,ruby-on-rails,Ruby On Rails,请解释为什么控制器中需要此代码?这段代码的意义是什么 respond_to do |format| format.html # index.html.erb format.json { render json: @users } end 它允许您根据用户/调用者请求的格式设置不同的输出格式。如果要访问http://yourhost/controller/index.html,控制器将使用ERB模板index.html.ERB(或HAML或其他任何内容)进行响应。如果要访问http://

请解释为什么控制器中需要此代码?这段代码的意义是什么

respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @users }
end

它允许您根据用户/调用者请求的格式设置不同的输出格式。如果要访问
http://yourhost/controller/index.html
,控制器将使用ERB模板
index.html.ERB
(或HAML或其他任何内容)进行响应。如果要访问
http://yourhost/controller/index.json
,它将使用JSON模板
index.JSON.erb
进行响应


这允许您使用单个控制器操作来准备数据,然后根据请求的格式选择要渲染的视图。

它允许您根据用户/调用者请求的格式对输出进行不同的格式化。如果要访问
http://yourhost/controller/index.html
,控制器将使用ERB模板
index.html.ERB
(或HAML或其他任何内容)进行响应。如果要访问
http://yourhost/controller/index.json
,它将使用JSON模板
index.JSON.erb
进行响应


这允许您使用单个控制器操作来准备数据,然后根据请求的格式选择要呈现的视图。

定义在调用respond_时默认呈现的mime类型。 因此,基本上,这意味着您的控制器操作可以以不同的格式(在您的例子中是html、json)命中,并且仍然向调用它的任何对象提供数据。这有助于API开发和其他许多事情。
例如:您希望获得所有用户的json列表,以便使用javascript进行操作。您可以调用/users.json,这将转到您的用户控制器索引操作,并知道如何呈现所有用户的json对象。

定义在调用respond\u时默认呈现的mime类型。 因此,基本上,这意味着您的控制器操作可以以不同的格式(在您的例子中是html、json)命中,并且仍然向调用它的任何对象提供数据。这有助于API开发和其他许多事情。
例如:您希望获得所有用户的json列表,以便使用javascript进行操作。您可以调用/users.json,这将转到您的用户#控制器#索引操作,并知道如何呈现所有用户的json对象。

上面的代码是由scaffold生成的,它提供了一种为控制器呈现
*.html
*.json
视图的方法,使您能够轻松访问数据以实现web应用程序的API或普通视图

您还可以创建XML输出:

format.xml  { render xml: @users }
以及其他格式,如PDF或DOC,取决于您使用的gems


有关更多信息,请参阅。

上述代码是生成的,并提供了一种为控制器呈现
*.html
*.json
视图的方法,使您可以轻松访问用于实现web应用程序的API或普通视图的数据

您还可以创建XML输出:

format.xml  { render xml: @users }
以及其他格式,如PDF或DOC,取决于您使用的gems


有关更多信息,请参阅。

注意,您不必这样做。如果您的站点仅为HTML,则可以删除粘贴的所有代码,然后使用默认呈现,即HTML模板。请注意,您不必这样做。如果您的站点仅为HTML,则可以删除粘贴的所有代码,只需使用默认呈现,即HTML模板。