ハイフン付きの電話番号をハイフンなしに変換したい
解決したいこと
ウェブアプリの新規登録画面の電話番号入力欄で、ハイフンが入力されたら削除して、ハイフンなしで電話番号が登録されるようにしたい。
※今回はAPIモードで作成。
発生している問題・エラー
Officeモデルを作成し、下記の10〜11桁の電話番号のバリデーションを加えたが、これが動作する前にハイフン付き電話番号を変換したいが、実装方法が思い浮かばない...
office.rb
class Office < ApplicationRecord
validates :tell, format: { with: /\A\d{10,11}\z/, message: '電話番号は有効な値ではありません'}
end
なお、現状ではPostmanで上記のバリデーションで設定したmessageの内容が返ってくる。
自分で試したこと
コントローラーのprivateに下記のメソッドを作成し、電話番号のハイフンをgsubメソッドで削除するロジックを書いたが、動作しない。
controller側で受け取った時にハイフンを外す処理を入れてその後、保存処理をすればうまくいくはずと考えています。
offices_controller.rb
def create
@office = Office.create(office_params)
if @office.save
render json: { status: 'SUCCESS', data: @office }
else
render json: { status: 'ERROR', data: @office.errors }
end
end
private
def convert_tell(office_params)
office_params.match?(/\A\d{1,4}-\d{1,4}-\d{3,4}\z/).gsub(/-/, '')
end
def office_params
params.permit(:name, :address, :tell, :fax)
end
0 likes