我试图定义Rails'parameterize
的一个版本,它不会导致生成的字符串不合适。在Rails中,如何以及在哪里定义一个稍微改变现有Rails方法的新方法
# File activesupport/lib/active_support/inflector/transliterate.rb, line 80
def parameterize(string, sep = '-')
# replace accented chars with their ascii equivalents
parameterized_string = transliterate(string)
# Turn unwanted chars into the separator
parameterized_string.gsub!(/[^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!(/#{re_sep}{2,}/, sep)
# Remove leading/trailing separator.
parameterized_string.gsub!(/^#{re_sep}|#{re_sep}$/, '')
end
parameterized_string.downcase
end
我会想我会做到这一点:
# /lib/inflector.rb
module Inflector
module ParameterizeCs
# Parameterize a string without making it lowercase
# by editing Rails' parameterize
def parameterize_cs(string, sep = '-')
....
end
end
end
# Actually monkey-patch Inflector
Inflector.include Inflector::ParameterizeCs
但我发现了这个错误:undefined method parameterize_cs
任何想法?
是不是你** **结束**你的**模块ParameterizeCs **? – Lymuel