railsの複数形・単数系がうまくいかない場合の対処
どう見てもこれは変換がおかしいだろってことがありました。
'loves'.singularize => "lofe"
普通にlove
を返すべきところじゃん・・・
このおかげでpathがnew_lofe_path
なんてなったりしました。
これはどうにかしたいと思ったら、イレギュラー登録をすることで対応できました。
まずはこのメソッドの紹介します。
単数系→複数形
pluralize
"send".pluralize => "sends"
複数系→単数形
singularize
"sends".singularize => "send"
イレギュラーな変換を登録する
config/initializers/inflections.rb
# ActiveSupport::Inflector.inflections(:en) do |inflect| # inflect.plural /^(ox)$/i, '\1en' # inflect.singular /^(ox)en/i, '\1' # inflect.irregular 'person', 'people' # inflect.uncountable %w( fish sheep ) # end
コメントアウトされてサンプルが書かれていますね。
ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.irregular 'love', 'loves' end
これで大丈夫になります。
以上です。