`
xxh123
  • 浏览: 33744 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

rails的url_for

阅读更多
rails的url_for方法是用的很广,这里主要讨论的actioncontroller中的urlwriter的部分实现。
rails的url_for调用的是Routting::Routes.generate(options,{})。该方法把url的生成分为两个部分即path和后面的参数的生成。参数生成主要采用cgi.escap(param),将每个参数都这样生成最后采用数组的方法Array * '&'(等同于Array.join('&'))。

path的生成比较复杂主要使用segment生成,segment是加载routes.rb后为每条规则写的数据组成。具体实现比较复杂,我现在也就了解一部分,主要是生成加载的生成,但是怎么进行查询加载比如url_for的实现仍然不清楚,希望大家谁对这部分了解可以给我帮助。

使用url_for和routes.rb能够给我的设计带来方便,查询的规则和你在routes.rb
写的顺序有关,例如使用规则进行seo。我们知道一个网站的相同的内容最好只有一个url,但是我们的will_paginate的首页的url会生成?page=1和我们的默认页的url很可能不同,我们这里使用两条规则,第一条首页规则,给予默认的page=1,第二条分页规则,我们的will_paginate主要使用的就是url_for,分页时首页查找会用第一条规则,其余的会使用第二条规则,从而达到我们的目的。
分享到:
评论

相关推荐

    RestFul_Rails_Dev_pdf_v_0.1.zip

    Rails的路由系统(Routes)会自动将URL映射到相应的控制器动作,实现资源操作的路由。 RESTful设计的一个关键特性是使用动词和名词来构建URL。例如,`/users`表示用户资源,而`/users/1`表示ID为1的具体用户。对于...

    rails上传文件_paperclip

    url: '/system/:class/:attachment/:id_partition/:style/:filename' } ``` 2. **模型设置** 在你想要处理文件上传的模型中,添加一个`has_attached_file`方法: ```ruby class User has_attached_file :...

    Ruby新手学习书(Ruby语言中文教程)和Rails_4_days

    2. **路由**:Rails的路由系统是连接URL到控制器动作的关键,学习如何定义和配置路由规则至关重要。 3. **ActiveRecord**:这是Rails处理数据库的主要工具,包括模型定义、关联、查询和迁移。 4. **Scaffolding**...

    url_plumber:更改 rails 中的单个 url 参数

    水管工 曾经有一个带有...更改url参数开始的最简单方法是沿着这些路线的某个地方: # url_plumber_helper.rbmodule UrlPlumberHelper def plumb(key_path, value = nil) return url_for (@plumber ||= ::UrlPlumber::Pl

    Ruby+for+Rails

    Rails的路由系统将URL映射到控制器的动作上,定义在`config/routes.rb`文件中。例如,`resources :books`会生成CRUD(创建、读取、更新、删除)相关的路由。 8. **ActiveRecord** Rails的ORM(对象关系映射)层,...

    rails-form_for-lab-v-000

    使用正确的路由和路由帮助程序URL为new , create , edit和update构建RESTFul操作。 指示 在本实验中,您将通过构建创建和编辑学校课程的功能来扩展Flatiron学校的学生管理应用程序的功能。 您将从头开始构建所有...

    phoenix_html_simplified_helpers:phoenix html的一些帮助器(截断,time_ago_in_words,number_with_delimiter,url_for,current_page?)

    这些助手包括 "截断(truncation)","time_ago_in_words","number_with_delimiter","url_for" 和 "current_page?"。接下来,我们将深入探讨这些助手函数以及它们在实际开发中的应用。 1. **截断 (truncation)**: ...

    好用的rails 2.0 Api 文档

    Rails的路由系统(routes.rb)将URL映射到控制器的特定动作上,这允许开发者灵活地定义URL结构。通过资源路由,可以轻松实现RESTful操作。 **7. ActiveRecord查询接口** Rails 2.0提供了ActiveRecord查询接口...

    rails ajax提交文件或图片

    在Rails中,`form_for`辅助方法可以帮助我们创建一个表单,但为了支持AJAX提交,我们需要将其与`remote: true`选项一起使用: ```html <%= form_for @upload, url: uploads_path, html: { multipart: true }, ...

    Rails 3 in Action

    4. **路由**:Rails的路由系统允许灵活地定义URL到控制器动作的映射,书中介绍了如何设置资源路由、命名路由和自定义路由规则。 5. **ActiveRecord**:详述了ActiveRecord是如何作为对象关系映射(ORM)层工作的,...

    Ruby on Rails实践

    在Rails中,路由(Routes)是连接URL与控制器动作的桥梁。通过定义路由规则,我们可以将特定的HTTP请求映射到相应的控制器方法。此外,Rails的辅助方法如`link_to`和`form_for`,简化了视图中的链接和表单生成。 ...

    weixin_rails_middleware_example:微信Rails例子

    自述文件 对于: : 需要 Rails 4.1 用法: rm Gemfile.lock bundle install rake db:create rake db:migrate rails server 从下载ngrok ,注册,获取你自己的 auth token,比如bFDybfmIx/Ad6Z5/evE3 ,... For

    rails-1.0.0

    5. **路由系统**:Rails的路由系统将URL映射到特定的控制器方法,使得URL设计更加灵活且语义化。 6. **RESTful设计**:Rails鼓励使用REST(Representational State Transfer)架构风格,通过HTTP动词(GET、POST、...

    urls_for_humans:将持久的、有意义的 url 应用于您的 Rails 应用程序

    Urls for Humans 是一个 gem,它允许您利用Model.find(params[:id]) 、 to_i和to_param发生的事情,为 Rails 应用程序的 url 应用有意义的名称。 这使得将users/1为users/1-john-otander 。 只要 url 以模型的id为...

    Rails API 文档

    Rails提供了一系列的辅助方法,帮助开发者更轻松地构建视图,例如`form_for`, `link_to`, `button_to`等。 6. **ActiveSupport** 这是Rails的一个核心组件,包含了许多实用的工具类和方法,如时间处理、字符串...

    For-Rails-Beginners::Japanese_symbol_for_beginner:Ruby on Rails的初学者有福了

    本资源"For-Rails-Beginners"显然是为那些希望入门Ruby on Rails的初学者设计的,特别是对于台湾地区和使用传统中文的用户。 在Rails框架中,以下是一些核心概念和知识点: 1. **Ruby语言基础**:在学习Rails之前...

    Ruby On Rails For Dummies

    - **Routing**:Rails 使用了一种基于正则表达式的路由机制,可以根据 URL 自动映射到对应的控制器方法。 - **Middleware**:中间件是 Rails 应用的一个重要组成部分,它们位于 HTTP 请求和响应的处理流程中,可以...

    blog.tar.gz_Rails

    5. **RESTful设计**:Rails鼓励使用RESTful路由,使得URL更具描述性和易于理解。 6. **DRY (Don't Repeat Yourself)**:Rails强调避免重复代码,提升代码复用和维护性。 在标签中,"rails"是关键,意味着这个项目...

    rails6-silver

    rails6-silver 该存储库旨在用于Ruby on Rails技术员认证考试(银)。由于我们基于对策书籍学习,因此我们致力于每个项目。...url_for only_path /锚点/用户/密码/操作 --- URL生成 帮手 url_for --- 背部 链接生

    资源for rails

    4. **路由**:Rails的路由系统将URL映射到控制器的动作,定义在`config/routes.rb`文件中。理解资源路由(resource routes)是关键,例如`resources :users`会自动创建CRUD操作的路由。 5. **模型**:模型代表...

Global site tag (gtag.js) - Google Analytics