我試圖定義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