Ruby on rails 编辑操作(使用scaffold生成)中没有对块的响应?

Ruby on rails 编辑操作(使用scaffold生成)中没有对块的响应?,ruby-on-rails,ruby,Ruby On Rails,Ruby,有人知道为什么生成的edit操作没有respond\u块吗?典型脚手架控制器中的每个其他动作都有一个respond_to块,以便输出html和xml格式。为什么edit操作是一个例外 我使用的是最新版本的RubyonRails(2.1.1)。因为编辑操作只能从HTML调用 不需要在XML上下文中返回编辑表单。 使用REST,您只需直接进行put调用以使用相关信息进行更新。Rails处理99%的情况:您不太可能在编辑操作中需要进行任何XML或JSON转换,因为非视觉化的编辑操作与Show操作非常相

有人知道为什么生成的
edit
操作没有
respond\u
块吗?典型脚手架控制器中的每个其他动作都有一个
respond_to
块,以便输出
html
xml
格式。为什么
edit
操作是一个例外


我使用的是最新版本的RubyonRails(2.1.1)。

因为编辑操作只能从HTML调用 不需要在XML上下文中返回编辑表单。
使用REST,您只需直接进行put调用以使用相关信息进行更新。

Rails处理99%的情况:您不太可能在编辑操作中需要进行任何XML或JSON转换,因为非视觉化的编辑操作与Show操作非常相似。希望更新应用程序中模型的非可视客户端可以通过这种方式调用控制器

GET /my_models/[:id].xml (Show) 
然后,客户端应用程序可以进行任何转换或编辑,并将结果发布(或放置)到

PUT /my_models/[:id].xml (Update) 
调用此选项时,通常是为了获得Show action的可编辑形式:

GET /my_models/[:id]/edit 

它是供人类使用的。99%的时间都是这样。由于在编辑操作中转换数据是不常见的,Rails假定您不会这样做,并通过将respond_to留在scaffold之外来干燥代码

有点相关。有些人可能想知道,为什么新行动的rails脚手架仍然需要阻止;而“编辑”操作没有。这是因为对以下内容的请求:

GET /my_models/new.xml

…返回可用于创建新模型的XML模板。

我理解这一点。但是,对于新的操作,有一个要阻止的响应。相同的参数不也适用于新操作吗?新操作会给您一个填充了默认字段的对象。您将在随后发布到“创建”操作时使用它们,无论是从非可视客户端还是从HTML屏幕。而且……正如Ryan在回答中指出的那样:新操作返回一个XML模板,您可以使用该模板从非可视客户端填充模型。打得好,Ryan。@Pete将添加我们使用的
format.html
等附加操作?换句话说,是不是通常情况下不使用respond_to?