我想为模型用户保存电话号码,但是铁路意外将手机从字符串转换为整数类型
def create
@user = User.new(user_params)
if @user.save
log_in @user
user_response = {
'user_id' => @user.id
}
render json: user_response
else
render json: @user.errors, status: :unprocessable_entity
end
end
private
def user_params
params.require(:user).permit(:username, :phone, :password, :password_confirmation)
end
错误:
Parameters: {"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "phone"=>"12345678901", "username"=>"test", "user"=>{"username"=>"lv", "phone"=>"12345678901"}}
(0.1ms) BEGIN
User Exists (0.2ms) SELECT 1 AS one FROM `users` WHERE `users`.`phone` = **BINARY '18610012942'** LIMIT 1
(0.1ms) ROLLBACK
Completed 422 Unprocessable Entity in 6ms (Views: 0.2ms | ActiveRecord: 0.5ms)
任何人都可以帮助我吗? 非常感谢。
更新
迁移:
class AddPhoneToUsers < ActiveRecord::Migration
def change
add_column :users, :phone, :string, index: true
end
end
型号:
class User < ActiveRecord::Base
attr_accessor :remember_token
validates :phone, presence: true, length: {minimum: 11, maximum: 11},
uniqueness: true, format: {with: VALID_PHONE_REGEX}
end
答案 0 :(得分:0)
您的控制台输出显示
{"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "phone"=>"12345678901", "username"=>"test", "user"=>{"username"=>"lv", "phone"=>"12345678901"}} ,
相反它应该是这样的:
{"user"=>{"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "phone"=>"12345678901", "username"=>"test"}}
根据上述内容form
进行更改