名前作成の仕様変更完了
仕様を変えました。 全角半角のスペースを無く名前の区切りにアンダーバーを入れる仕様です。
NOT_BLANK = /[^[:blank:]]+/ def cureate_user_name user_name_scanned = params[:user][:name].scan(NOT_BLANK) user_name ="" user_name_scanned.each_with_index do |name, index| if index == 0 user_name = name else user_name += "_"+name end end params[:user][:name] = user_name end
[[:blank]]
はPOSIX 文字クラス で全角スペース (ASCIIコード範囲外の空白) と半角スペースにマッチします。
.each_with_index
はeachで回していいるものをindexで表現してくれます。
一回目だけアンダーバーを付けずに名前だけ挿入したいのですが良い表現が思いつかなく少し冗長になってしまった気がします。一度だけ実行するメソッドを作った方が良いかもしれません。またuser_name
を宣言しているのがナンセンスですね。できれば宣言と代入を一緒に済ませて行えたらクールです。
ということで次は詰まってたリプレイ機能の開発を進めます。