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,分页时首页查找会用第一条规则,其余的会使用第二条规则,从而达到我们的目的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值