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在 Python 中实现可选的动态范围和参数对象。 正如所述,这是 Scheme 参数的精神实现。 如果你知道这意味着什么,太棒了! 如果没有,请继续阅读。 要求 parameterize本身应该可以在 Python 2.7 或更高...
在IT行业中,接口自动化测试是提高测试效率和质量的关键步骤,尤其在持续集成和持续部署(CI/CD)流程中更是不可或缺。本篇文章将详细解析一个基于Python、pytest、yaml、ddt和allure的接口自动化测试框架,帮助你理解...
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...
`Parameterize Method` 适用于多个函数有相似逻辑,但因某些变量值不同而分开的情况。通过创建一个通用函数,并用参数来表示这些差异,可以减少代码重复,提高代码的灵活性和可扩展性。 最后,`Replace Parameter ...
StatementHandler是拦截Sql语法构建的处理,提供了prepare、parameterize、batch、update、query等方法,用于拦截Sql语句的构建和执行过程。 ParameterHandler是拦截参数的处理,用于处理参数的设置和获取。 ...
我们使用Parameterize > Create Design Variable命令来创建设计变量,如表3所示。 优化设计 在ADAMS软件中,我们使用Design Evaluation Tools命令来对设计变量进行优化分析。系统分别对九个设计变量进行优化分析,...
同时,需要讨论设计的硬件实现和parameterize的可能性。 4. 状态机的逻辑综合图:该问题要求设计一个状态机,并讨论两种写法的优缺点。第一种写法使用两个触发器,分别控制状态和输出。第二种写法使用一个触发器,...
开始设计流程(Chapter2):详细指导了如何创建一个新的Quartus II项目,使用MegaWizard Plug-in Manager来配置IP核参数(Step1: Parameterize),设置仿真环境(Step2: Set Up Simulation),生成IP核的实例(Step3...
7. **参数化(parameterize)**: 数据驱动测试允许测试用例使用不同的输入数据,提高测试覆盖率。 8. **Hook 机制(hooks)**: Hook 允许在测试执行前后执行特定的函数,如在每个测试用例开始前或结束后进行...
3. **配置数据传输**:在从站属性的Configure选项中,设定数据传输大小(如8 bytes in/8 bytes out),并可在Parameterize中设置偏移地址,指向S7-200系列PLC的数据区(V区)。 4. **导出NCM文件**:完成组态后,...
- 使用"Options > Parameterize Adapter I/II..."打开配置对话框。 - 在"Serial parameters"标签中,将波特率设置为19200 bit/s,这是MD720-3的唯一支持速度。 - 在"Info"标签中,确认GSM modem的版本,低于1.7.3...
- 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 ...
代表带有MySQL查询的参数化日历 1这是什么? 这是提交给国内开源多平台DB客户举办的的答案和解决方案。 由于在解决问题时吸取了教训,因此我将它们整理成个人记录。 2题 显示特定年份和月份的日历。...
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...
在建立设计函数时,需要首先选择 “Parameterize” 再选择 “Expression Builder”,然后输入表达式,最后单击 “OK” 完成操作。在产生和修改需要计算的测量时,需要首先选择 “Build” 菜单,然后选择 “Measure”...
statementHandler.parameterize(stmt, parameter); statementHandler.setFetchSize(stmt, rowBounds.getFetchSize()); statementHandler/resultHandler(rowBounds, stmt, resultHandler); return resultHandler....
令方法携带参数(Parameterize Method) 修改方法使其接受额外的参数,以提高方法的灵活性。 #### 11. 将构造函数主体上移(Pull Up Constructor Body) 将子类中的构造函数体移到父类中,以减少重复代码。 ###...
4. **面板参数化**(Parameterize Panel):使用相同代码库实现两个略有差异的面板,提高代码复用率。 5. **替换参数为面板**(Replace Parameter with Panel):分离两个面板的实现,而不是简单地添加参数,以保持...
- **函数参数化(Parameterize Method)**:为一个函数增加额外的参数。 2. **改善变量**: - **引入解释变量(Introduce Explaining Variable)**:创建一个临时变量并为其赋予一个有意义的名字,使得代码更易...