Tag: validation

rails app的出生日期正则表达式yyyy-mm-dd

我正在创建一个用户注册表单,我将生日期添加到必填字段。 我已经搜索了谷歌,github和stackoverflow的出生日期(日期)正则表达式,并发现这个: user.rb DateRegex = /^\d{4}-\d{2}-\d{2}/ validates_format_of :date_of_birth, :with => DateRegex new.html.erb (我知道这会允许一些虚假的出生日期,但我不想在此时安装任何类似validation时效性的内容。) 但是,在测试出生日期时,它似乎并没有强制执行正则表达式中的4-2-2。 它允许2-2-2有时,2-4-2,2-2-4,它允许连字符和斜线…请帮助吗? 另外,如果有必要,如何使用3个文本字段并将其输入一个mysql date_of_birth列?

Paperclip不支持.doc文件

在rails 4.0.2中,我使用paperclip gem上传文件。 但它不支持.doc文件。 在文件上传字段下方,它显示错误消息“具有与其内容不匹配的扩展名” 在模型中,检查内容类型的validation如下: validates_attachment_content_type :document, :content_type => [‘application/txt’, ‘text/plain’, ‘application/pdf’, ‘application/msword’, ‘application/vnd.openxmlformats-officedocument.wordprocessingml.document’, ‘application/vnd.oasis.opendocument.text’, ‘application/x-vnd.oasis.opendocument.text’, ‘application/rtf’, ‘application/x-rtf’, ‘text/rtf’, ‘text/richtext’, ‘application/doc’, ‘application/docx’, ‘application/x-soffice’, ‘application/octet-stream’] 现在使用的gem rails (4.0.2, 4.0.0, 3.2.13, 3.2.8, 3.0.4, 3.0.3) paperclip (3.5.2, 2.3.11, 2.3.8) 我该如何解决这个问题?

validation嵌套表单中子对象的唯一性无法正常工作

我在Rails中的作用域唯一性validation有问题。 如果我尝试使用我不想重复的相同属性集创建一个新对象,直接在子模型中,但是当我尝试创建一个具有两个不唯一的子节点的父对象时,它可以正常工作没有被触发。 背景 我在Rails 3.2中有一个应用程序,其在HAML中的视图使用simple_form。 我有两个模型: Page和Property 。 页面可以具有许多属性,并且它接受属性的嵌套属性。 我想validation一个页面不能有两个具有相同名称的属性: #app/models/page.rb class Page :true end #app/models/property.rb class Property VALID_PROPERTIES, :uniqueness => {:scope => :page_id} end 当然,该属性具有page_id属性。 就像我说的,当通过其表单创建新属性时,validation工作。 如果我尝试创建一个具有相同名称和相同page_id的新属性,Rails会告诉我该名称已被删除。 问题 如果我创建一个新页面,并通过嵌套表单,分配各种属性,我可以绕过此validation。 当数据库中尚未存在page_id和property_id的组合时,这似乎只是一个问题,例如,如果我编辑已保存属性的Page模型,我尝试添加一个新的一个同名,validation现在触发。

使用RubyvalidationJenkins插件表单

我正在使用Ruby开发一个Jenkins插件。 您应该能够配置连接到服务器的每个节点,以便在节点失去与主服务器的连接时将电子邮件发送到指定的地址。 EmailNodeProperty添加一个字段以输入电子邮件地址: # # Save an email property for every node # class EmailNodeProperty < Jenkins::Slaves::NodeProperty require 'java' import 'hudson.util.FormValidation' display_name "Email notification" attr_accessor :email def initialize(attrs = {}) @email = attrs['email'] end def doCheckEmail value puts " ENP.doCheckEmail:#{value}" end end 配置节点时,会有一个名为email的字段,您可以在其中输入电子邮件地址。 我希望在您输入地址时validation此字段。 保存配置时,会创建一个EmailNodeProperty ,从而可以访问该电子邮件地址。 当节点失去连接时,将调用MyComputerListener的offline : class MyComputerListener include Jenkins::Slaves::ComputerListener include Jenkins::Plugin::Proxy def […]

从对象validation消息中删除字段名称

我在一个表单中使用它对一个对象进行了简单的活动记录validation: form.error_messages({:message => ”, :header_message => ”}) 这反过来输出类似“FieldName我的自定义消息”的内容 我需要做的是从错误消息中删除字段名称,但保留我的自定义消息。 任何人都可以指出我正确的方向。

Rails – 需要current_user信息的自定义validation

我有一个非常困难的轨道问题,我想要求一些帮助。 情况是这样的: 我正在为我的用户模型使用restful身份validation。 现在,用户有一个名为“gold”的字段,它是一个数字值。 还有另一个名为Book的模型,它是使用脚手架创建的。 我想做的很简单,但我看不到这样做的方法。 我想添加一些validation,如果用户的黄金不是,让我们说100,他们不能创建一个新的书籍条目(从脚手架标准视图)。 现在的问题是我需要current_user信息才能从我的模型中validation这一点。 我需要它来获取用户ID,因此也获得他们的黄金数量。 我找不到一个好方法(如果有的话)。 另一个想法是从控制器那样做。 但是,标准的“if @ book.save”块实际上不允许我插入我自己的错误消息(在scaffold创建中): if not User.has_the_needed_gold(current_user, 100) flash[:goldError] = ‘You do not have the needed gold to create this book.’ #end respond_to do |format| if @book.save flash[:notice] = ‘Book was successfully created.’ format.html { redirect_to(@book) } format.xml { render :xml => @book, :status => […]

如何使用postgresqlvalidationRails中的重叠时间

我有一个Event model ,在我的日程安排应用程序中有end_at时间和end_at时间,我想在保存之前validation重叠时间。 我在Cloud9上创建了rails应用程序。 我的观点图如下; Day1 07:00 – 07:20 event1 10:30 – 11:30 event2 15:40 – 16:10 event3 [add event button] Day2 08:15 – 09:05 event4 12:08 – 13:04 event5 14:00 – 14:25 event6 [add event button] [save schedule button] end_at time和end_at时间可以同时更改和添加。 我想做的是显示错误,如果我尝试为Day1添加(或更改) 07:05 – 07:30 ,例如, 13:50 – 14:30 ,依此类推。 例如; app_development =#select * […]

检查URL可用性Ruby on Rails

假设在用户提交的URL的原始validation之后,我有一个看起来像URL的字符串: url = ‘http://www.thisdomaindoesntexist.com/dont_even_ask_about/this/uri’ 我如何检查它是否可用? 我在我的is_valid_link函数中尝试了这个: require “net/http” url = URI.parse(url) req = Net::HTTP.new(url.host, url.port) res = req.request_head(url.path) 它可以工作,如果服务器存在给我回HTTP响应,但问题是,如果坏URL我得到这样的错误: SocketError in PostsController#create getaddrinfo: nodename nor servname provided, or not known 我该如何正确地进行这种validation? 提前致谢。

如何在我的情况下跳过格式validation?

我有一个模型User,其属性为“guest”(BOOLEAN)如果user.guest == true或user.guest == nil,我想跳过电子邮件的格式validation, 试着 VALID_EMAIL_REGEX = /^(\S+)@([a-z0-9-]+)(\.)([az]{2,4})(\.?)([az]{0,4})+$/i validates :email, format: { :with => VALID_EMAIL_REGEX } unless :guest? 但现在即使用户有guest == false或guest == nilvalidation仍在跳过 可能有什么不对? 另一种常见的validation效果很好 validates :email, presence: true, uniqueness: { case_sensitive: false } unless :guest?

Railsvalidation电话号码正则表达式

尝试通过添加有效的正则表达式来增强我的用户个人资料表单等,以确保使用有效的电子邮件,电话号码等。 我有以下正则表达式,在Rubular上测试时工作正常,但是当我将它添加到我的模型时出现语法错误,如下所示: (^(\+44\s?7\d{3}|\(?07\d{3}\)?)\s?\d{3}\s?\d{3}$ validates_format_of :contactnr, with: (^(\+44\s?7\d{3}|\(?07\d{3}\)?)\s?\d{3}\s?\d{3}$, allow_blank => true