我是Ruby和Rails的新手,需要知道如何在应用titlelize之前检查字符串是否包含破折号。
@city = City.first :conditions => { :title => params[:city].titleize }
我需要做的是:
@city = City.first :conditions => { :title => params[:city] }
然后在@city
变量不包含破折号的情况下编写仅适用于标题的内容。
答案 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
我不知道你为什么要使用它,但我相信它并不适用于所有情况。应该有更好的方法。