jjzjj

validation

全部标签

ruby-on-rails - 如何在 Rails 中验证今天之后的日期?

我有一个包含属性的ActiveRecord模型:expiry_date。我如何着手验证它,使其在今天之后(当时的当前日期)?我是Rails和ruby​​的新手,我找不到能准确回答这个问题的类似问题?我正在使用Rails3.1.3和ruby​​1.8.7 最佳答案 您的问题(几乎)得到了准确回答intheRailsguides.这是他们提供的示例代码。此类验证日期是否在过去,而您的问题是如何验证日期是否在future,但调整它应该很容易:classInvoice 关于ruby-on-rai

ruby - 有效的电子邮件地址正则表达式?

这个问题在这里已经有了答案:HowcanIvalidateanemailaddressusingaregularexpression?(80个答案)关闭9年前。我已经做了一些测试,但我想问问是否有人发现这个用于电子邮件验证的ruby​​正则表达式有问题:/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i好看吗?

使用正则表达式的 Ruby 电子邮件验证

我有一大堆正在浏览的电子邮件。很多邮件都有拼写错误。我正在尝试构建一个字符串来检查有效的电子邮件。这就是我的正则表达式。defis_a_valid_email?(email)(email=~/^(([A-Za-z0-9]*\.+*_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\+)|([A-Za-z0-9]+\+))*[A-Z‌​a-z0-9]+@{1}((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,4}$/i)end如果电子邮件为下划线且只有一个句点,则通过。我有很多电子邮件的名称本身有不止一个句点。我如何在正则表达式中检查它。

ruby-on-rails - Ruby on Rails : errors. add_to_base 与 errors.add

我读过errors.add_to_base应该用于与对象相关的错误,而不是特定属性。我无法概念化这意味着什么。有人可以举例说明我什么时候想使用它们吗?例如,我有一个乐队模型,每个乐队都有一个流派。当我验证某个类型是否存在时,如果缺少该类型,是否应该将错误添加到基础中?例子越多越好谢谢! 最佳答案 值得注意的是(因为它出现在搜索引擎中,这就是我找到它的方式)它已被弃用。下面是Rails3的执行方式,但从Rails7开始不再有效(请参阅2022年4月的评论)errors[:base]最好的做法是errors.add(:base,"Err

ruby-on-rails - 仅在存在时验证属性(仅当用户填写时)

只有当某些属性不为空时,我才需要验证它们。例如,用户可能有一个标志。如果我们尝试加载它-验证应该有效。如果我们只是更新没有标识的用户数据,则必须跳过验证。现在我有:表格有两个文件可供选择。一是Logo,二是头像。这两个属性都是用户模型的一部分。在用户模型中有验证:validates_preference_of:logo_file_name,:message=>I18n.t("...")validates_format_of:logo_file_name,:with=>/\.(jpeg|jpg|png|gif)$/i,:message=>I18n.t("...")validates_pr

ruby - "Could not find a valid gem in any repository"(rubygame 等)

一段时间以来我一直在尝试安装这个“rubygame”gem,但是每当我使用命令时geminstallrubygame会报错:ERROR:Couldnotfindavalidgem'rubygame'(>=0)inanyrepositoryERROR:Whileexecutinggem...(Gem::RemoteFetcher::FetchError)Errno::ETIMEDOUT:Connectiontimedout-connect(2)(http://rubygems.org/latest_specs.4.8.gz)我也尝试过其他gems但结果相似:ERROR:Couldnotf

ruby-on-rails - 我如何在 rails 中销毁 'validate'

在销毁restful资源时,我想在允许销毁操作继续之前保证一些事情?基本上,如果我注意到这样做会使数据库处于无效状态,我希望能够停止销毁操作?销毁操作没有验证回调,那么如何“验证”销毁操作是否应该被接受? 最佳答案 您可以引发异常,然后捕获该异常。Rails将删除包装在一个事务中,这有助于解决问题。例如:classBooking或者,您可以使用before_destroy回调。此回调通常用于销毁依赖记录,但您可以抛出异常或添加错误。defbefore_destroyreturntrueifbooking_payments.count

ruby-on-rails - rails : Validating min and max length of a string but allowing it to be blank

我有一个要验证的字段。我希望该字段能够留空,但如果用户正在输入数据,我希望它采用某种格式。目前我在模型中使用以下验证,但这不允许用户将其留空:validates_length_of:foo,:maximum=>5validates_length_of:foo,:minimum=>5如何编写此代码以实现我的目标? 最佳答案 你也可以使用这种格式:validates:foo,length:{minimum:5,maximum:5},allow_blank:true或者因为您的最小值和最大值相同,以下也将起作用:validates:foo

ruby-on-rails - 如何验证 Rails 中的日期?

我想在RubyonRails中验证我的模型中的日期,但是,日、月和年值在到达我的模型时已经转换为不正确的日期。例如,如果我在我的View中输入2009年2月31日,当我在我的Controller中使用Model.new(params[:model])时,它会将其转换为“2009年3月3日”,然后我的模型将其视为有效日期,确实如此,但它是不正确的。我希望能够在我的模型中进行此验证。有什么办法可以,还是我的做法完全错误?我发现这个“Datevalidation”讨论了这个问题,但它从未得到解决。 最佳答案 我猜您正在使用date_sel

ruby-on-rails - 验证 Rails 3 的自定义消息

Rails引入了新的方法来验证模型内部的属性。当我使用validates:title,:presence=>true它有效,但是当我尝试添加自定义消息时validates:title,:presence=>true,:message=>"Storytitleisrequired"产生错误Unknownvalidator:'message' 最佳答案 试试这个validates:title,presence:{message:"Storytitleisrequired"} 关于ruby-o