Rails 为route的路由约束提供了constraints 方法,具体的使用如下:
- 限制IP地址
constraints(:ip => /192.168.\d+.\d+/) do resources :posts end
可以提供一个ip或者一个ip地址的范围进行限制,一旦检测到用户的ip地址符合限制范围,则会告知不存在此route。
- 匹配动态请求
这个例子是控制route只能被iPhone访问。
1,第一种做法,传递block,如下:constraints(lambda { |req| req.env["HTTP_USER_AGENT"] =~ /iPhone/ }) do resources :iphones end
通过传入一个block的方式来匹配HTTP_USER_AGENT是否匹配iPhone,如果是true则可以访问iphones这个资源路径。
但是第一方法比较粗暴,代码不够整洁,如果逻辑复杂,就显得啰嗦,所以可以选择第二种方法
2,第二种做法,传递一个Class,并且在这Class必须实现matches? 方法。
我们事先在ib/constraints 定义一个Iphone Class:class Iphone def self.matches?(request) request.env["HTTP_USER_AGENT"] =~ /iPhone/ end end
接着在把第一方法的代码修改为:constraints(Iphone) do resources :iphones end
这样我们就可以把逻辑全部放在Iphone了
参考资料:
例子实现: https://gist.github.com/bsodmike/1369419
Rails Guide: http://guides.rubyonrails.org/routing.html#segment-constraints
同时如果你觉得在本文中介绍太简单,可以移步官方源码实现,并且附带有此api的详细guides:
相关推荐
[Ruby_on_Rails][API][Rails_5.x]__01._Rails_與_Web_API_介紹
在本篇内容中,我们将深入探讨如何利用Ruby on Rails(简称Rails)这一强大的Web应用程序框架来构建可伸缩且易于维护的RESTful API。Rails以其简洁优雅的语法、高效的开发速度以及良好的社区支持而闻名,这使得它...
Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...
《Rails API 4.0.0:Ruby on Rails框架的API设计与开发指南》 Rails API 4.0.0是Ruby on Rails框架的一个版本,专门针对构建应用程序接口(APIs)进行了优化。Ruby on Rails是由David Heinemeier Hansson创建的开源...
Rails API 是一个专门为构建应用程序接口(API)设计的Ruby on Rails框架版本。它专注于提供一套轻量级的工具,使得开发者能够快速、高效地创建RESTful API服务。Rails API的目的是为了提高性能,并减小API服务器与...
Ruby on Rails 2.3.5 API HTML版是针对该版本框架的重要开发参考资料,它包含了详细的API文档,帮助开发者理解并有效地使用Rails 2.3.5进行Web应用开发。Rails是一个基于Ruby语言的开源Web应用程序框架,它遵循模型-...
标题“ruby on rails api”表明我们将讨论的是Rails框架的API(Application Programming Interface),这是一系列预先定义好的函数、类和模块,允许开发者通过调用来实现特定的功能,无需从头编写所有代码。Rails ...
Ruby on Rails4 api.chm ruby on rails 4 最新api chm版本,方便大家阅览!
rails 2.1的api文档,chm格式,官方最新版
Rails API 是一个强大的框架,用于构建高效、可扩展的Web应用程序。它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式,使得开发者可以轻松地处理数据存储、用户界面和业务逻辑。Rails API 特别适用于构建...
Rails 3.2 API 是一个重要的开发资源,主要用于Ruby on Rails框架的开发。Rails是基于Ruby语言的一个开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,广泛应用于构建动态网站和Web应用程序。Rails ...
Rails 2.2.2 API 是一个针对 Ruby on Rails 框架的版本 2.2.2 的接口文档,它是开发人员的重要参考资料,用于理解并有效地使用该框架的各项功能。Ruby on Rails(RoR)是由 David Heinemeier Hansson 创建的一个开源...
Api-rails5_api_tutorial.zip,了解如何在michael hartl的rails 5教程上构建一个现代api立即在rails应用程序中构建一个api!(Rails 5版本),一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web...
个人收藏的rails api
Rails Api基地 介绍 该项目的目标是: 一个讨论Rails设置和开发的api示例。 从其开始项目的基本模板。 规格摘要: RESTful API。 api版本。 Notes应用示例。 模式和良好做法。 用户管理。 版本到期。 国际...
**Ruby on Rails API** 是一个详尽的文档资源,它为开发者提供了关于Ruby on Rails框架的全面信息。这个API文档是用rdoc工具从Rails的源代码生成的,旨在帮助开发者理解和利用Rails的强大功能。CHM(Compiled ...
2. "Rails3 api.chm":这是Rails 3的主要API文档,它应该包含了关于控制器、模型、视图、路由、数据库交互、辅助方法、插件、测试等所有关键部分的详细信息。开发者可以通过搜索、索引等功能快速查找所需的信息。 ...
Rails 2.0 API 文档是一个非常宝贵的资源,它为开发者提供了全面的指南,以便于在使用Ruby on Rails 2.0版本时更好地理解和利用其框架功能。Ruby on Rails(简称Rails)是一个开源的Web应用框架,它遵循MVC(模型-...
rails的api文档,方便你查看
构建Perfect Rails 5 API Only应用得益于作为Rails 5核心一部分提供的新的rails-api gem,Rails现在是快速,轻松构建精简API的理想选择。 到目前为止,可以说,在Ruby中创建API的最佳选择是Grape,尽管Grape仍然是一...