2011-09-15 42 views
1

是否有可能用html而不是json响应json请求?Rails 3.1:与HTML的respond_to json请求

我想做到这一点:

respond_to do |format| 
    format.html { render 'page' } 
    format.json { render 'page' } #render an html page instead of a JSON response 
end 

但Rails会寻找一个“page.json”,并会引发错误。

回答

4

您需要明确设置的格式,内容类型(默认为application/json)和布局图(默认为无):

respond_to do |format| 
    format.html { render 'page' } 
    format.json do    # render an html page instead of a JSON response 
    render 'page.html', { 
     :content_type => 'text/html', 
     :layout  => 'application' 
    } 
    end 
end 
0

只需使用完整的文件名。 render 'page.html'(或任何文件被称为)。

请注意,虽然这应该工作,如果你这样做,你可能做错了什么。考虑如何重构代码,以便不必弯曲规则。

+0

我知道这是错的。我重用了一些处理JSON帖子的代码,但现在我想用最少的努力渲染验证错误。 –