parameterize :替换掉特殊字符,让它看起来像个漂亮的url,主要是根据正则表达式 ,替换掉非字母、数字及下划线的字符。。中文也将被替换掉。。。。那就没的搞了。

中文的 url 还是要自己去定义了。
================
parameterize(string, sep = '-')
Replaces special characters in a string so that it may be used as part of a ‘pretty’ URL.

Examples

class Person
def to_param
"#{id}-#{name.parameterize}"
end
end

@person = Person.find(1)
# => #<Person id: 1, name: "Donald E. Knuth">

<%= link_to(@person.name, person_path(@person)) %>
# => <a href="/person/1-donald-e-knuth">Donald E. Knuth</a>

==============================================================
# File activesupport/lib/active_support/inflector/transliterate.rb, line 81
def parameterize(string, sep = '-')
# replace accented chars with their ascii equivalents
parameterized_string = transliterate(string)
# Turn unwanted chars into the separator
parameterized_string.gsub!(%r[^a-z0-9\-_]+/, sep)
unless sep.nil? || sep.empty?
re_sep = Regexp.escape(sep)
# No more than one of the separator in a row.
parameterized_string.gsub!(%r#{re_sep}{2,}/, sep)
# Remove leading/trailing separator.
parameterized_string.gsub!(%r^#{re_sep}|#{re_sep}$/, '')
end
parameterized_string.downcase
end

parameterize相关推荐

  1. 重构函数调用-Parameterize Method令函数携带参数五

    重构函数调用-Parameterize Method令函数携带参数五 1.令函数携带参数 1.1.使用场景 若干函数做了类似的工作,但在函数本体中却包含了不同的值.建立单一函数,以参数表达那些不同的值 ...

  2. MyBatis原理分析之四:一次SQL查询的源码分析

    上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: Java代码   String res ...

  3. java的工作原理你知道吗_每天用Mybatis,但是Mybatis的工作原理你真的知道吗?

    近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边看源码就开干了. 核心部件:SqlSession Executor Stat ...

  4. 行为型模式:命令模式

    LieBrother原文: 行为型模式:命令模式 十一大行为型模式之三:命令模式. 简介 姓名 :命令模式 英文名 :Command Pattern 价值观 :军令如山 个人介绍 : Encapsul ...

  5. 资源 | Yann LeCun最新演讲:大脑是如何高效学习的?(附PPT+视频)

    整理 | 周翔 作为深度学习的奠基人之一,Yann LeCun 的一言一行都颇受关注.近日,Yann LeCun 在 CCN 2017 (认知计算神经科学大会)上发表了主题为"How doe ...

  6. MyBatis 的工作原理,你了解过吗?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:cnblogs.com/scuury/p/10371 ...

  7. 百度 71 个炸天的开源项目!你知道几个?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:风一样的码农 cnblogs.com/chenpi/p/10 ...

  8. 深入理解 Mybatis 插件开发

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:风一样的码农 cnblogs.com/chenpi/p/10 ...

  9. 面试官:你能说说MyBatis拦截器原理吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:Format cnblogs.com/fangjian042 ...

  10. 面试官:你分析过mybatis工作原理吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 Mybatis工作原理也是面试的一大考点,必须要对其非常清晰,这样 ...

最新文章

  1. 5.7-基于Binlog+Position的复制搭建
  2. 一行代码解决IFrame自适应高度问题
  3. Spring之数据库操作
  4. 初学者可能不知道的vue技巧
  5. 计算机二级vf上机试题,2016年计算机二级《VF》上机题及答案
  6. 十位值得关注的Java顶级专家
  7. 幼儿学数数的c语言程序,【资源学习】c语言程序代码,登录幼儿园200个小朋友的数据...
  8. Shell编程:awk使用总结
  9. 低级问题---.net franmework安装
  10. 机器学习领域综述大列表:真的很大, 你忍一忍
  11. 利用sql语句实现到datagridview显示的转换
  12. R-FCN算法及Caffe代码详解
  13. 【转】The C10K problem(翻译 中文版)
  14. Android开发入门(一)
  15. SSIM结构相似性算法
  16. 基于javaweb的户籍管理系统
  17. 修改apache2根目录
  18. 使用EXCEL计算并绘制RSI指标
  19. 简历上的项目经历怎么写 ?这 3 条原则不可忽视 !...
  20. Python薅羊毛脚本

热门文章

  1. matlab 信道容量的迭代算法,实验二一般信道容量迭代算法详解.ppt
  2. 毕业设计超市进销存管理系统源码
  3. mysql单数据库多硬盘配置_MySQL 使用mysqld_multi部署单机多实例详细过程
  4. 《认知与设计——理解UI设计准则》系列笔记目录
  5. 计算机网络基础之互联网总结
  6. 如何知道计算机是否支持64位,查看CPU是否支持64位操作系统的简单方法
  7. 【HDU4622】Reincarnation
  8. 什么是单子?Java开发人员的基本理论
  9. 二进制拆弹(20181023-20181026)
  10. 2022大厂真题盘点!190道大数据高频面试题+答案详解