如何判断控制器已解析为呈现的格式

Und*_*ion 49 controller ruby-on-rails respond-to ruby-on-rails-3

在使用以下代码的rails控制器操作中:

respond_to do |format|
  format.json{ render :json=>  {:status => 200, :response=>@some_resource} }
  format.html { redirect_to(some_resource_path)}
end
Run Code Online (Sandbox Code Playgroud)

如何记录控制器将解析的格式,即"HTML"或"json"?formatCollector类型.有没有办法获得表示格式的字符串?

Ani*_*nil 85

访问格式的方法是:

controller.request.format
Run Code Online (Sandbox Code Playgroud)

  • 是.甚至`request.format.html?`也行. (72认同)
  • 谢谢Anil.所以从控制器来看它只是request.format. (6认同)
  • 最好使用request.format,因为controller.request.format抛出未定义的局部变量或方法`controller' (3认同)

loc*_*dev 16

在您的控制器中,您可以执行以下操作:

request.format
request.format.html?
request.format.js?
request.format.json?
# etc.
Run Code Online (Sandbox Code Playgroud)