Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Rails中参数化字符串而不使其小写_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何在Rails中参数化字符串而不使其小写

Ruby on rails 如何在Rails中参数化字符串而不使其小写,ruby-on-rails,Ruby On Rails,有一个很好的方法,参数化,但它使字符串小写。那么,有没有一种方法可以在不使字符串小写的情况下对其进行参数化呢?这就是参数化的来源。因此,您可以定义一个新方法,只需将最后一行参数化\u字符串.downcase更改为参数化\u字符串 # File activesupport/lib/active_support/inflector/transliterate.rb, line 80 def parameterize(string, sep = '-') # replace accented ch

有一个很好的方法,
参数化
,但它使字符串小写。那么,有没有一种方法可以在不使字符串小写的情况下对其进行参数化呢?

这就是
参数化的来源。因此,您可以定义一个新方法,只需将最后一行
参数化\u字符串.downcase
更改为
参数化\u字符串

# 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

我不确定您要做什么,但是
参数化
方法旨在使字符串URL安全

然而,如果你坚持你可以一直这样做:

"AsDF".parameterize.capitalize # => "Asdf" 

在Rails 5中,可以添加preserve_case选项来参数化

"Ærøskøbing Brugs".parameterize(preserve_case: true) => "AEroskobing-Brugs"

您可以使用gsub替换或删除字符串中的特殊字符。