4

私はRubyとRailsに本当に慣れていないので、タイトル化を適用する前に文字列にダッシュが含まれているかどうかを確認する方法を知る必要があります.

@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 に答える