0

例如,我想

/apples/123?_format=json

表现得像

/apples/123.json

它呈现 *.json.* 模板,执行 respond_to {|format| format.json {...}} 等

这是可能吗?

谢谢!

4

1 回答 1

1

您可以执行以下操作来禁用 Rails 对.ext格式的自动处理:

constraints format: false do
  resources :apples
  # ...
end

然后,这有点恶心,但我目前看不到更好的方法,您可以执行以下操作来更新 ActionController 服务的格式:

class ApplicationController < ActionController::Base
  before_filter :set_format_from_query_string

private

  def set_format_from_query_string
    request.format = params.fetch(:_format, 'json')
  end
end

这将允许您的respond_to块根据_format查询字符串参数进行切换并json用作默认格式。

于 2013-08-07T22:21:45.937 回答