平々凡々エンジニア

平凡で難しい悩みを解決

名前作成の仕様変更完了

前回:ユーザーネームの仕様を変えようと思います。

仕様を変えました。 全角半角のスペースを無く名前の区切りにアンダーバーを入れる仕様です。

 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を宣言しているのがナンセンスですね。できれば宣言と代入を一緒に済ませて行えたらクールです。

ということで次は詰まってたリプレイ機能の開発を進めます。