有谁知道为什么生成的respond_to
操作没有edit
块?典型脚手架控制器中的每个其他操作都有一个respond_to
块,以便输出html
和xml
格式。为什么edit
操作是例外?
我正在使用最新版本的Ruby on Rails(2.1.1)。
答案 0 :(得分:12)
Rails处理99%的情况:你很可能不需要在编辑动作中进行任何XML或JSON翻译,因为非直观地,编辑动作就像Show动作一样。想要在应用程序中更新模型的非可视客户端可以通过这种方式调用控制器
GET /my_models/[:id].xml (Show)
然后,客户端应用程序可以进行任何转换或编辑,并将结果发布(或放入)
PUT /my_models/[:id].xml (Update)
当你打电话给这个时,你通常会这样做以获得一个可编辑的Show动作形式:
GET /my_models/[:id]/edit
它适用于人类。 99%的时间,即。由于在Edit操作中转换数据是不常见的,因此Rails假定您不会这样做,并且通过将respond_to从scaffold中删除来干掉您的代码。
答案 1 :(得分:2)
有点相关。有些人可能想知道为什么新动作的rails scaffolding仍然有一个respond_to块;而编辑动作却没有。这是因为对以下内容的请求:
GET /my_models/new.xml
...返回一个可用于创建新模型的XML模板。
答案 2 :(得分:1)
因为只会从HTML调用编辑操作 编辑表单不需要在XML上下文中返回。 使用REST,您只需直接拨打电话就可以使用相关信息进行更新。