在Rails中应用titleize之前检查破折号

时间:2013-02-11 16:21:18

标签: ruby-on-rails

我是Ruby和Rails的新手,需要知道如何在应用titlelize之前检查字符串是否包含破折号。

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

我需要做的是:

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

然后在@city变量不包含破折号的情况下编写仅适用于标题的内容。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

if params[:city] =~ /-/
  @city = City.first :conditions => { :title => params[:city] }
else
  @city = City.first :conditions => { :title => params[:city].titleize }     
end

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