Tag: validation

Rails – 如果另一个字段具有特定值,如何validation字段?

我是Rails的新手,我现在遇到了一个我无法用我的朋友谷歌解决的问题:) 在我的表格中,我有一个具有三个值的选择: Apple , Banana和Cherry 。 如果我从选择中选择Apple ,我会隐藏另一个Select-和带有一些Javascript的文本字段,因为当选择Apple时,不再需要填写其他两个字段。 所以现在我在提交表单时validation表单时遇到问题。 我发现了一些类似的问题,例如“如果另一个是空白则仅validation字段”。 这个问题解决了这样: validates_presence_of :mobile_number, :unless => :home_phone? 所以我刚刚尝试了第一件突然出现的事情: validates_presence_of :state, :granted_at, :if => :type != 1 但是当我运行它时,我收到此错误: undefined method `validate’ for true:TrueClass 所以现在我没有找到如何从创建的对象中访问值…感谢您提前获得的帮助,我希望我的问题不像听起来那么明显:-)

清理Paperclip错误消息

好的,所以我有回形针工作,我正在尝试使用内置的validation器来确保上传的文件 是一个图像 不是太大了 所以我在模型中有这个,根据文档: validates_attachment :avatar, :content_type => { :content_type => /image/ }, :size => { :in => 0..2.megabytes } 但是它在视图中显示的错误是这个混乱: 我希望它有点简单,比如“阿凡达必须是一个小于2兆字节的图像” 但是,我无法看到在哪里这样做,因为传递:message => ‘something’会抛出错误Unknown validator: ‘MessageValidator’ 我该如何清理呢? 请注意,上传小图片的快乐路径可以正常工作。 一些进一步的测试表明,上传太大的图像(如桌面背景)或非.rb文件的内容会更优雅地失败,但根本不会显示任何错误消息。 仍然不是我想要的。

Ruby on Rails:如何在没有Active Record的情况下validation模型?

我目前正在尝试validation没有ActiveRecord::Baseinheritance的字段。 我的模型将数据存储在缓存服务器上,因此我不需要ActiveRecord。 无论如何,我想validation模型的字段,就像我使用ActiveRecord一样(例如validates_numericality_of :quantity, :greater_than => 0 )? 我怎样才能做到这一点? 非常感谢您的帮助。

Rails:摆脱generics“X无效”validation错误

我有一个注册表单,它具有嵌套的关联/属性,无论你想要什么。 我的层次结构是这样的: class User true end class Customer :user_role, :dependent => :destroy accepts_nested_attributes_for :user, :allow_destroy => true validates_associated :user end class Employee :user_role, :dependent => :destroy accepts_nested_attributes_for :user, :allow_destroy => true validates_associated :user end 我在这些课程中也有一些validation内容。 我的问题是,如果我尝试使用空白表单创建和客户(或员工等),我会得到所有的validation错误,加上一些通用的错误,如“用户无效”和“客户无效”如果我迭代错误我得到的东西: user.login can’t be blank User is invalid customer.whatever is blah blah blah…etc customer.some_other_error etc etc 由于嵌套用户模型中至少有一个无效字段,因此会在错误列表中添加额外的“X无效”消息。 这让我的客户感到困惑,所以我想知道是否有一种快速的方法可以做到这一点,而不必自己提交错误。

Rails:一次保存更新记录的集合

据我了解, build方法可用于在保存之前建立关联记录的集合。 然后,当调用save ,将validation并保存所有子记录,如果存在validation错误,则父记录将出现反映此错误的错误。 第一个问题是,这是正确的吗? 但我的主要问题是,假设上述内容有效,是否可以对更新执行相同的操作,而不是创建? 换句话说,是否有一种方法可以更新与父记录关联的集合中的多个记录,然后保存父记录并立即进行所有更新(如果子级中存在validation错误,则会在父级中出现错误) )? 编辑:总而言之,我想知道正确的方法来处理父记录和几个相关子记录需要一次更新和保存的情况,任何错误都会中止整个保存过程。

Rails条件validation

所以我这里有两个型号: class Screen {:less_than_or_equal_to =>100,:greater_than_or_equal_to => 0},:if => “user.access==1” class User < ActiveRecord::Base has_many :screens attr_accessible :access 但是这段代码不起作用,因为无论user.access是什么值,它仍然会执行validation。 我在这做错了什么? 谢谢

validation:if

我正在尝试创建一个条件,其中属性’one’为零,属性’two’为1,则模型无效。 但是,当我做: Model.create(:one => 1, :two => 0).valid? unit testing返回true ! 为什么? validates :one, :two, :presence => true, :if => :if condition_testing? def condition_testing? !(one == 0 && two == 1) end

在ActiveModel对象上,如何检查唯一性?

在Bryan Helmkamp的优秀博客文章“ 7个模式来重构Fat ActiveRecord模型 ”中,他提到使用Form Objects抽象出多层表单并停止使用accepts_nested_attributes_for 。 编辑:请参阅下面的解决方案。 我几乎完全复制了他的代码示例,因为我有同样的问题需要解决: class Signup include Virtus extend ActiveModel::Naming include ActiveModel::Conversion include ActiveModel::Validations attr_reader :user attr_reader :account attribute :name, String attribute :account_name, String attribute :email, String validates :email, presence: true validates :account_name, uniqueness: { case_sensitive: false }, length: 3..40, format: { with: /^([a-z0-9\-]+)$/i } # Forms are never themselves […]

Rails:validationhas_many关联中parent_id的存在

我有一个项目资源,有很多任务。 我想通过将validates_presence_of :project_id添加到任务模型来确保每个任务都有一个project_id 。 但是,在使用任务创建新项目时,在记录保存之前project_id将不可用,因此我无法使用validates_presence_of :project_id 。 所以我的问题是,如何在任务模型中validationproject_id的存在? 我想确保每个任务都有父母。 … class Project :destroy accepts_nested_attributes_for :tasks, :allow_destroy => true … class Task < ActiveRecord::Base belongs_to :project validates_presence_of :project_id

回形针 – validation文件类型但不存在

我使用paperclip来处理我的文件上传,在一种情况下我不希望文件是强制性的。 但是,我想确保它存在时是特定的文件类型。 我有这个: class TestModel [‘audio/mp3’, ‘application/x-mp3’] end 当我没有声音文件时,它告诉我它不是有效的内容类型之一。 我已经尝试将”添加到:content_type数组,这也不起作用! 我还尝试为:if属性创建一个lambda过程,但是:if没有某种错误我就无法运行它。 这里有什么遗漏?