在我的rails 4.1.6应用程序中,我想禁止访问诸如
之类的网址www.mysite.com/models.json
在生产中,但允许它在开发中。
如何修改默认控制器操作,例如;
# GET /models/1
# GET /models/1.json
def show
end
实现这个目标?
如果环境是生产环境,我希望响应类似于找不到页面或页面无法访问。
答案 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
。