`
sitoto
  • 浏览: 124183 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

parameterize

    博客分类:
  • ruby
阅读更多
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:参数化和 SRFI 39 的 Python 实现

    parameterize在 Python 中实现可选的动态范围和参数对象。 正如所述,这是 Scheme 参数的精神实现。 如果你知道这意味着什么,太棒了! 如果没有,请继续阅读。 要求 parameterize本身应该可以在 Python 2.7 或更高...

    python+pytest+yaml+ddt+allure的接口自动化测试框架(测)

    在IT行业中,接口自动化测试是提高测试效率和质量的关键步骤,尤其在持续集成和持续部署(CI/CD)流程中更是不可或缺。本篇文章将详细解析一个基于Python、pytest、yaml、ddt和allure的接口自动化测试框架,帮助你理解...

    RealTimeFur.pdf

    Next, we parameterize the texture over a surface of arbitrary topology using “lapped textures” — an approach for applying a sample texture to a surface by repeatedly pasting patches of the texture...

    PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用

    `Parameterize Method` 适用于多个函数有相似逻辑,但因某些变量值不同而分开的情况。通过创建一个通用函数,并用参数来表示这些差异,可以减少代码重复,提高代码的灵活性和可扩展性。 最后,`Replace Parameter ...

    MyBatis拦截器(csdn)————程序.pdf

    StatementHandler是拦截Sql语法构建的处理,提供了prepare、parameterize、batch、update、query等方法,用于拦截Sql语句的构建和执行过程。 ParameterHandler是拦截参数的处理,用于处理参数的设置和获取。 ...

    基于ADAMS软件的六连杆冲压机构的优化设计.docx

    我们使用Parameterize &gt; Create Design Variable命令来创建设计变量,如表3所示。 优化设计 在ADAMS软件中,我们使用Design Evaluation Tools命令来对设计变量进行优化分析。系统分别对九个设计变量进行优化分析,...

    fpga笔试面试题解答-集成电路-笔试题-面试题 fpga开发.pdf

    同时,需要讨论设计的硬件实现和parameterize的可能性。 4. 状态机的逻辑综合图:该问题要求设计一个状态机,并讨论两种写法的优缺点。第一种写法使用两个触发器,分别控制状态和输出。第二种写法使用一个触发器,...

    altera公司IP核使用手册.pdf

    开始设计流程(Chapter2):详细指导了如何创建一个新的Quartus II项目,使用MegaWizard Plug-in Manager来配置IP核参数(Step1: Parameterize),设置仿真环境(Step2: Set Up Simulation),生成IP核的实例(Step3...

    HttpRunner框架笔记(全网最全!!!附视频讲解!!!免费!!!)

    7. **参数化(parameterize)**: 数据驱动测试允许测试用例使用不同的输入数据,提高测试覆盖率。 8. **Hook 机制(hooks)**: Hook 允许在测试执行前后执行特定的函数,如在每个测试用例开始前或结束后进行...

    S7-200系列 PLC与监控计算机

    3. **配置数据传输**:在从站属性的Configure选项中,设定数据传输大小(如8 bytes in/8 bytes out),并可在Parameterize中设置偏移地址,指向S7-200系列PLC的数据区(V区)。 4. **导出NCM文件**:完成组态后,...

    ts参数[参照].pdf

    - 使用"Options &gt; Parameterize Adapter I/II..."打开配置对话框。 - 在"Serial parameters"标签中,将波特率设置为19200 bit/s,这是MD720-3的唯一支持速度。 - 在"Info"标签中,确认GSM modem的版本,低于1.7.3...

    Object-Oriented Analysis and Design 第六章

    - Command pattern encapsulates a request as an object, enabling you to parameterize clients with different requests, queue or log requests, and support undoable operations. - Interpreter pattern ...

    parameterize-calendar-mysql:代表带有MySQL查询的参数化日历

    代表带有MySQL查询的参数化日历 1这是什么? 这是提交给国内开源多平台DB客户举办的的答案和解决方案。 由于在解决问题时吸取了教训,因此我将它们整理成个人记录。 2题 显示特定年份和月份的日历。...

    b+树,learning index

    The general design is to have a single lookup structure that you can parameterize with a KeyType and a ValueType, and an overflow list that keeps new inserts until you retrain. There is a value in the...

    ADAMS函数简介[整理].pdf

    在建立设计函数时,需要首先选择 “Parameterize” 再选择 “Expression Builder”,然后输入表达式,最后单击 “OK” 完成操作。在产生和修改需要计算的测量时,需要首先选择 “Build” 菜单,然后选择 “Measure”...

    mybatis分页源码

    statementHandler.parameterize(stmt, parameter); statementHandler.setFetchSize(stmt, rowBounds.getFetchSize()); statementHandler/resultHandler(rowBounds, stmt, resultHandler); return resultHandler....

    关于重构思想

    令方法携带参数(Parameterize Method) 修改方法使其接受额外的参数,以提高方法的灵活性。 #### 11. 将构造函数主体上移(Pull Up Constructor Body) 将子类中的构造函数体移到父类中,以减少重复代码。 ###...

    Professional Java User Interfaces

    4. **面板参数化**(Parameterize Panel):使用相同代码库实现两个略有差异的面板,提高代码复用率。 5. **替换参数为面板**(Replace Parameter with Panel):分离两个面板的实现,而不是简单地添加参数,以保持...

Global site tag (gtag.js) - Google Analytics