当有
def some_action
respond_to do |format|
format.html {}
format.js {}
format.json { respond_with @objects}
end
end
似乎 html 行和 js 行会自动提供/调用与操作名称匹配的文件。并且 html 和 js 提供一个或另一个,而不是两者。这个对吗?
如果你的 js 中有一个 ajax 调用被调用,json 就会被调用,它请求数据,而这些需要数据来响应,对吧?我需要它来响应 json 和 js,还是只响应一个?
如果不respond_to,并且省略所有类型,是否默认响应html和js?
当我在控制器中执行 respond_to 而不是每个操作中的 respond_to 块时,使用是否respond_with @objects
适用于任何参数(:thml、:js、:xml、:json 等)?
替代语法:
class TheController < ApplicationController
respond_to :html, :js, :json, only: [:some_action, :other_action]
def some_action
respond_with @objects
end
end
替代语法如何工作?
如果您使用替代语法,您能否对不同类型的请求做出不同的响应?如果您想以不同的方式响应,是否必须使用 respond_to 块而不是替代语法?这些案例中的每一个如何解决优雅降级到 html 的问题?