parameterize
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相关推荐
- 重构函数调用-Parameterize Method令函数携带参数五
重构函数调用-Parameterize Method令函数携带参数五 1.令函数携带参数 1.1.使用场景 若干函数做了类似的工作,但在函数本体中却包含了不同的值.建立单一函数,以参数表达那些不同的值 ...
- MyBatis原理分析之四:一次SQL查询的源码分析
上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: Java代码 String res ...
- java的工作原理你知道吗_每天用Mybatis,但是Mybatis的工作原理你真的知道吗?
近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边看源码就开干了. 核心部件:SqlSession Executor Stat ...
- 行为型模式:命令模式
LieBrother原文: 行为型模式:命令模式 十一大行为型模式之三:命令模式. 简介 姓名 :命令模式 英文名 :Command Pattern 价值观 :军令如山 个人介绍 : Encapsul ...
- 资源 | Yann LeCun最新演讲:大脑是如何高效学习的?(附PPT+视频)
整理 | 周翔 作为深度学习的奠基人之一,Yann LeCun 的一言一行都颇受关注.近日,Yann LeCun 在 CCN 2017 (认知计算神经科学大会)上发表了主题为"How doe ...
- MyBatis 的工作原理,你了解过吗?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:cnblogs.com/scuury/p/10371 ...
- 百度 71 个炸天的开源项目!你知道几个?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:风一样的码农 cnblogs.com/chenpi/p/10 ...
- 深入理解 Mybatis 插件开发
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:风一样的码农 cnblogs.com/chenpi/p/10 ...
- 面试官:你能说说MyBatis拦截器原理吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:Format cnblogs.com/fangjian042 ...
- 面试官:你分析过mybatis工作原理吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 Mybatis工作原理也是面试的一大考点,必须要对其非常清晰,这样 ...
最新文章
- 5.7-基于Binlog+Position的复制搭建
- 一行代码解决IFrame自适应高度问题
- Spring之数据库操作
- 初学者可能不知道的vue技巧
- 计算机二级vf上机试题,2016年计算机二级《VF》上机题及答案
- 十位值得关注的Java顶级专家
- 幼儿学数数的c语言程序,【资源学习】c语言程序代码,登录幼儿园200个小朋友的数据...
- Shell编程:awk使用总结
- 低级问题---.net franmework安装
- 机器学习领域综述大列表:真的很大, 你忍一忍
- 利用sql语句实现到datagridview显示的转换
- R-FCN算法及Caffe代码详解
- 【转】The C10K problem(翻译 中文版)
- Android开发入门(一)
- SSIM结构相似性算法
- 基于javaweb的户籍管理系统
- 修改apache2根目录
- 使用EXCEL计算并绘制RSI指标
- 简历上的项目经历怎么写 ?这 3 条原则不可忽视 !...
- Python薅羊毛脚本
热门文章
- matlab 信道容量的迭代算法,实验二一般信道容量迭代算法详解.ppt
- 毕业设计超市进销存管理系统源码
- mysql单数据库多硬盘配置_MySQL 使用mysqld_multi部署单机多实例详细过程
- 《认知与设计——理解UI设计准则》系列笔记目录
- 计算机网络基础之互联网总结
- 如何知道计算机是否支持64位,查看CPU是否支持64位操作系统的简单方法
- 【HDU4622】Reincarnation
- 什么是单子?Java开发人员的基本理论
- 二进制拆弹(20181023-20181026)
- 2022大厂真题盘点!190道大数据高频面试题+答案详解