我的客户模型有first_name,last_name和phone_number。 在创建用户时,我想使用phone_number验证if phone_number存在然后使用相同的数据,否则创建新的客户。 我怎么能这样做?
def create
@customer = Customer.new(customer_params)
respond_to do |format|
if @customer.save
format.html { redirect_to @customer, notice: 'Customer was successfully created.' }
format.json { render :show, status: :created, location: @customer }
else
format.html { render :new }
format.json { render json: @customer.errors, status: :unprocessable_entity }
end
end
end
我尝试了这个,但它并不完美
def check_presence
params[:phone_number].exists?
end
def validate_presence
if !check_presence
Customer.new
end
end
答案 0 :(得分:0)
尝试以下代码:
before_save :check_phone
def check_phone
Customer.exists?(phone: self.phone) ? false : true
end
答案 1 :(得分:0)
在您的客户模型(customer.rb)中,您可以
validates :phone_number, presence: true
或
validates_presence_of :phone_number
答案 2 :(得分:0)
请使用方法first_or_create
方法,下面发布了一个示例
@customer = Customer.where(:phone_number => phone_number).first_or_create(customer_params)