我对 Ruby 和 Rails 非常陌生,需要知道如何在应用 titlelize 之前检查字符串是否包含破折号。
@city = City.first :conditions => { :title => params[:city].titleize }
我需要做的是:
@city = City.first :conditions => { :title => params[:city] }
然后编写仅在@city
变量不包含破折号时才应用标题化的内容。
我对 Ruby 和 Rails 非常陌生,需要知道如何在应用 titlelize 之前检查字符串是否包含破折号。
@city = City.first :conditions => { :title => params[:city].titleize }
我需要做的是:
@city = City.first :conditions => { :title => params[:city] }
然后编写仅在@city
变量不包含破折号时才应用标题化的内容。
我喜欢几周前 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
if params[:city] =~ /-/
@city = City.first :conditions => { :title => params[:city] }
else
@city = City.first :conditions => { :title => params[:city].titleize }
end
我不知道您为什么要使用它,但我相信它不适用于所有情况。应该有更好的方法。