4

我对 Ruby 和 Rails 非常陌生,需要知道如何在应用 titlelize 之前检查字符串是否包含破折号。

@city = City.first :conditions => { :title => params[:city].titleize }  

我需要做的是:

@city = City.first :conditions => { :title => params[:city] }

然后编写仅在@city变量不包含破折号时才应用标题化的内容。

4

2 回答 2

3

我喜欢几周前 zachrose 添加的这个解决方案:https ://gist.github.com/varyonic/ccda540c417a6bd49aec

def nice_title(phrase)
  return phrase if phrase =~ /^-+$/
  phrase.split('-').map { |part|
    if part.chars.count == part.bytes.count
      part.titleize
    else
      part.split(' ').map { |word| word.mb_chars.titleize }.join(' ')
    end
  }.join('-')
end
于 2013-12-06T14:55:35.743 回答
0
if params[:city] =~ /-/
  @city = City.first :conditions => { :title => params[:city] }
else
  @city = City.first :conditions => { :title => params[:city].titleize }     
end

我不知道您为什么要使用它,但我相信它不适用于所有情况。应该有更好的方法。

于 2013-02-11T16:27:09.353 回答