`

Routes

阅读更多
routes:

routes的命名允许你减少重复的代码,通过分配一个根据生成一个封装routes rule hash的方法的路径规则名称来实现,
你可以定义一个命名路径,你可以调用它在你的routes.rb文件中来代替connect方法.
例如:
map.home '',:controller=>'main',:action=>'start'
这只是为你做了很少的一点事.首先,它创建一个名为home_url的方法.因此上面的命名规则,前期的请求为:
redirect_to :controller=>'main',:action=>'start'
现在为:
redirect_to home_url


因为*_to方法被重写的方式,在上面的情况,你没有将参数传递给命名路径,你也可以将它传递给一个引用的方法.
redirect_to :home_url


注意:将命名路径做为一个符号已经取消了,在rails2.0将被删除.

这个也能应用于是tests.如果在你的controller里有redirect_to home_url,也可以用
assert_redirect_to home_url.


*_url方法需要一个唯一的可选参数.这个参数是一个hash,插入url_for之中,这样做就是为了当用redirect_to,link_to时命名规则可以参数化.

你如果说有这样的route

map.user_page 'users/:user',:controller=>'users',:action=>'show'


你可以这样做

link_to @user.username,user_page_url(:user=>@user)


注释:这个仅仅象普通的routes,表单是path_part/:symbol.在上面的例子中,user这部分将只展示在路径中,并不严格与controller相关联.users/只是path生成的部分,
上面的例子生成<a href="http://localhost/users/7">http://localhost/users/7</a>
比如:

:user 是你定义的参数名称,如果定义两个一模一样的路径,很可能得不到你想要的结果.对于routes,定义默认值.

当用参数来命名routes,你必须传递参数给assert中的命名规则.如果在你的controller中有redirect_to user_page_url(:user=>@user), 你需要有assert_redirected_to user_page_url(:user=>@user).controller中@user的id必须与test中的@user的id匹配.

除了[route_name]_url方法,你可以用hash_for_[route_name]_url方法,这个方法包装hash,没有调用url_for

所有的reoute将其它的命名规则用map.connect提供给你.
2
0
分享到:
评论

相关推荐

    Laravel开发-laravel-admin-routes

    在本文中,我们将深入探讨Laravel开发中的一个重要概念——`laravel-admin-routes`,它是由Bytenet创建的一个管理路由包。这个包的主要目的是为了简化Laravel应用中后台管理界面的路由设置,使得开发者可以更高效、...

    Laravel开发-laravel-routes

    本文将深入探讨Laravel的路由系统,特别是`laravel-routes`这个主题,以及如何进行路由分组。 首先,我们来了解Laravel路由的基本概念。在Laravel中,路由定义在`routes/web.php`和`routes/api.php`两个文件中。...

    Laravel开发-laravel-jwt-routes

    `laravel-jwt-routes` 是一个专为Laravel设计的包,它简化了使用JWT进行API认证的过程。 ### 1. JWT简介 JWT是一种轻量级的身份验证和授权机制,通过在客户端和服务器之间传递加密的令牌来确保安全的数据交换。JWT...

    前端开源库-react-routes

    前端开源库-react-routesReact Routes,轻量级同构HTML5路由器,用于ReactJS。

    next-routes, Next.js的通用动态路由.zip

    next-routes, Next.js的通用动态路由 Next.js 动态路由 易于使用通用动态路由的Next.js表达式和参数匹配面向 express &的请求处理程序中间件通过路由定义生成url的Link 和 Router:如何使用安装:npm

    routes源代码

    Routes is a Python re-implementation of the Rails routes system for mapping URLs to application actions, and conversely to generate URLs. Routes makes it easy to create pretty and concise URLs that ...

    angular2-website-routes, 使用路由的简单 Angular 2网站示例.zip

    angular2-website-routes, 使用路由的简单 Angular 2网站示例 使用路由构建 Angular 2网站这是一个使用全新路由器的简单 Angular 2网站。 它演示了如何构建组件。配置路由。注入服务,以及使用 @Input decorator将...

    python3-routes-2.4.1-12.el8.noarch.rpm

    离线安装包,亲测可用

    Laravel开发-json-routes

    但是,通过`json-routes`,我们可以创建一个名为`routes.json`的文件,里面包含以下内容: ```json { "routes": [ { "method": "GET", "uri": "/users", "action": "App\\...

    Laravel开发-laravel-js-routes

    在现代Web开发中,前端与后端的交互变得越来越紧密,JavaScript路由(JS Routes)成为了一个关键的组件,它允许前端应用更好地理解和处理后端的路由结构。在Laravel框架中,`laravel-js-routes`是一个非常有用的库,...

    Laravel开发-extract-routes

    "Laravel开发-extract-routes"是一个工具,由Casa Parks创建,用于帮助开发者更方便地管理和分析他们的路由配置。这个工具被称为“Laravel路线采掘机”,它提供了一种有效的方式来提取、理解和优化Laravel应用中的...

    PyPI 官网下载 | flask_optional_routes-1.1.tar.gz

    在PyPI(Python Package Index)官网上,你可以找到各种Python库,包括我们这里提到的"flask_optional_routes-1.1"。这个压缩包文件是一个针对Flask框架的扩展插件,用于增强路由功能。 `flask_optional_routes` 是...

    Laravel开发-routes-explorer .zip.zip

    `routes-explorer`通常是一个工具或功能,用于帮助开发者更好地理解和管理应用中的路由设置。在这个“Laravel开发-routes-explorer .zip”文件中,我们可能找到了一个用于探索和测试Laravel路由的实用工具或教程资料...

    routes-2.6.7-10.diff.txt

    从给定的文件信息来看,我们正在探讨的是Linux内核版本2.6.7到2.6.7-10之间的代码变更,具体涉及到网络过滤、路由选择以及网络流处理等核心网络功能的修改。下面将对这些变更进行详细的解析。 ...

    Laravel开发-laravel-lock-routes

    在Laravel框架中,开发一个基于路由的权限锁定系统,如“laravel-lock-routes”,是为应用程序添加安全层的重要步骤。Laravel以其优雅的语法和丰富的功能集,为开发者提供了构建复杂Web应用的便捷途径。`laravel-...

    Laravel开发-laravel-routes-publisher

    `laravel-routes-publisher`是一个工具,旨在帮助开发者更高效地管理和组织他们的路由定义,避免使用`Route::controller()`方法,因为这个方法在新的Laravel版本中已经被标记为不推荐使用。 ### 显式路由的优点 1....

    Laravel开发-routes-explorer

    `Laravel开发-routes-explorer`是一个工具,帮助开发者更方便地管理和探索应用中的路由设置。这个工具可能包括一个命令行界面或者可视化界面,用于查看、排序、搜索和理解应用的路由结构。 在Laravel中,路由定义...

Global site tag (gtag.js) - Google Analytics