gpt4 book ai didi

ruby-on-rails - 如何验证 Rails Controller 中的存在和正则表达式格式?

转载 作者:数据小太阳 更新时间:2023-10-29 06:56:05 26 4
gpt4 key购买 nike

我正在尝试验证电子邮件地址.. 它是否存在.. 以及它是否符合正则表达式标准 (/xyz/)。我真的需要在 rails 的 Controller 或 View 级别上执行此操作,因为我打算为我的应用程序转储 ActiveRecord,因为我计划稍后使用 nosql 数据库。

有什么提示吗?有什么建议吗?

在模型中,它将是以下代码..但我试图在 Controller 或 View 中执行此操作:

VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i

validates :email, presence: true,
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }

最佳答案

class UsersController < ApplicationController
def create
user = User.new(params[:user])
if valid_email?(user.email)
user.save
redirect_to root_url, :notice => 'Good email'
else
flash[:error] = 'Bad email!'
render :new
end
end

private
def valid_email?(email)
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
email.present? &&
(email =~ VALID_EMAIL_REGEX) &&
User.find_by(email: email).empty?
end
end

但是,我会说验证仍然属于模型,即使它不是基于 ActiveRecord 的模型。请看一下如何使用 ActiveModel::Validations:

http://api.rubyonrails.org/classes/ActiveModel/Validations.html http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/ http://asciicasts.com/episodes/219-active-model

关于ruby-on-rails - 如何验证 Rails Controller 中的存在和正则表达式格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15799342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com