有一个很好的方法,parameterize
,但它使字符串小写。那么有没有一种方法来参数化字符串而不使其小写?
答案 0 :(得分:7)
在Rails 5中,您可以添加preserve_case选项以进行参数化。
Parent
http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-parameterize
答案 1 :(得分:3)
这是parameterize
的来源。因此,您可以定义新方法,只需将最后一行parameterized_string.downcase
更改为parameterized_string
# 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
答案 2 :(得分:0)
我不确定你的目的是什么,但parameterize
方法旨在使字符串URL安全。 Capital letters are not safe to use in URLs.
但是,如果你坚持你总是这样做:
"AsDF".parameterize.capitalize # => "Asdf"