Rails如何限制只显示json格式的开发环境?

时间:2015-05-26 01:40:50

标签: ruby-on-rails ruby json controller

在我的rails 4.1.6应用程序中,我想禁止访问诸如

之类的网址
www.mysite.com/models.json

在生产中,但允许它在开发中。

如何修改默认控制器操作,例如;

  # GET /models/1
  # GET /models/1.json
  def show
  end

实现这个目标?

如果环境是生产环境,我希望响应类似于找不到页面或页面无法访问。

1 个答案:

答案 0 :(得分:0)

您可以使用Rails.env.production?来限制网址。我更喜欢在routes.rb中执行此操作,但您也可以在操作中使用它。

routes.rb中,通过将if Rails.env.production?添加到路径来限制网址。

如果它在行动,它将看起来像

def show
  render status: 401 if Rails.env.production?
end

如果在路由中添加条件以阻止路由级别的请求,则返回状态代码将为404。如果您想要状态inaccessible,则需要从控制器返回401