请教大家一个问题:在 ruby on rails 的 controller 里的方法中的 respond_to do |format| 这句什么意思?
#1 楼 @francistm 嗯,谢谢!还有,他这种返回格式 format.json { render json: @person }后面的参数是什么意思
完整的话是这样的
respond_to do |format|
format.json do
render({ json: @person })
end
end
#3 楼 @mr_zou123 你是指 @person 这个么?把 @person 对象按照 JSON 的格式输出吧,相当于 render :text => @person.to_json 一样。
respond_to 是根据请求的头信息来判断来调用那种 block,实现方法类似
def xml
yield if self.accept_header == "text/xml"
end
def html
yield if self.accept_header == "text/html"
end
def json
yield if self.accept_header == "text/json"
end
format 实际是一个 http 请求包装程序。