如何防止向用户显示json数据?

时间:2014-03-31 13:48:36

标签: ruby-on-rails caching http-caching

此网址返回json

https://example.com/product/product_name.json // returns json document

https://example.com/product/product_name 

返回html,它使用jquery在内部调用上面的JSON url,它构造它并很好地呈现数据。

在控制器中我正在进行缓存

def product
  expires_in 1.day , public: true
  render json: @product
end

现在的问题是,如果用户在开始时直接访问https://example.com/product/product_name,则会加载html但是当他再次访问时,他会看到json数据。

无论如何都要阻止或控制它,以便用户可能看不到json

PS:http缓存最适合我​​们,我知道其他缓存技术。

更新基于格式的渲染无法正常工作。我想这是因为http_caching请求没有到达服务器。无论如何,这就是我在application_controller做的事情。

before_filter :intercept_html_requests, :unless => :not_format_html? 
private

def not_format_html?
 request.format != Mime::HTML
end

def intercept_html_requests
  render('homepage/index')
end

0 个答案:

没有答案