Tag: validation

使用simple_form自定义错误消息

我正在使用simple_form gem。 我想自定义用户validation失败时显示的错误消息。 我怎么能做到这一点?

Rails 3validation包含何时使用find(如何proc或lambda)

我有一个有CURRENCY和COUNTRY表的项目。 有一个PRICE模型需要有效的货币和国家代码,所以我有以下validation: validates :currency_code, :presence => true, :inclusion => { :in => Currency.all_codes } validates :country_code, :presence => true, :inclusion => { :in => Country.all_codes } all_codes方法返回仅包含货币或国家/地区代码的数组。 只要没有代码添加到表中,这样就可以正常工作。 你会怎么写这个,以便Currency.all_codes的结果是Proc或lambda内? 我尝试了Proc.new {Currency.all_codes} – 然后得到一个错误,该对象没有响应包含?

Rails将validation放在模块mixin中?

在我的模型中,一些validation是重复的: validates :name, :length => { :minimum => 2 }, :presence => true, :uniqueness => true validates :name_seo, :length => { :minimum => 2 }, :presence => true, :uniqueness => true 我怎么把它放在mixin中? 如果我把它们放在mixin中,我会收到这个错误 app/models/validations.rb:5: undefined method `validates’ for Validations:Module (NoMethodError)

Rails:模型与迁移中的validation

可能重复: Ruby on Rails:在模型或数据库中validation是否更好? 我看到可以在Rails模型和迁移中添加相同的约束/validation。 但哪一个是最好的方法? 在模型和数据库级别(以及为什么)进行validation是一种好的做法吗? 或者它们在轨道上相同? 例如,我们可以在模型和迁移中对名称进行相同的validation class User true, :presence => true end class CreateUser true, :null => false end end end

为什么Rails的“errors.full_messages”不替换属性和消息变量?

我刚刚创建的rails模型有一个奇怪的问题。 以下是我的validation: validates_presence_of :from_name, :message => ‘Please provide a from name.’ validates_presence_of :from_email validates_presence_of :giftition_plan_id 我在使用errors.full_messages以及f.error_messages中的errors.full_messages遇到问题: g = Giftition.create g.errors.first => [“from_name”, “Please provide a from name.”] >> g.errors.full_messages => [“{{attribute}} {{message}}”, “{{attribute}} {{message}}”, “{{attribute}} {{message}}”] 我刚收到”{{attribute}} {{message}}” 。 有任何想法吗? 更新:我已经卸载了rails 3以及随之安装的所有gem,这使问题消失了。 虽然这不是一个修复…我仍然希望安装rails 3。 更新:听起来像升级到2.3.9修复了问题。 不幸的是,我现在已经放弃了,但将来的某个时候我会尝试。

如何在Rails 3中validation非模型表单?

假设我有一个搜索表单,我想validation关键字的长度。 我希望表单突出显示无效字段(如模型表单)。 我到处寻找,似乎无法找到有关在Rails 3中validation非模型支持的表单的任何有用信息。我已经尝试了可validation的 gem,但这似乎不适用于Rails 3: undefined method `model_name’ for Login:Class. 有任何想法吗?

为什么使用“self”访问ActiveRecord / Rails模型属性?

贯穿我的应用程序self. 没有必要引用用户的名字。 name工作正常。 为什么以下代码要求self按预期工作? class User< ActiveRecord::Base before_save :validate_name def validate_name if self.name.nil? || self.name.empty? self.name= "Mr. No Name" end end 顺便说一下,我知道validates_presence_of可以用来阻止保存,但是如果没有给出名字,我想用默认保存。 Rails 3.0.7。

validation失败:上传文件的扩展名与其内容不匹配

我正在使用paperclip gem上传文件。 我的回形针gem版是paperclip-4.1.1。 在上传文件时抛出 Validation failed: Upload file has an extension that does not match its contents. 我正在尝试上传xlsx文件。 而且我已经在模型中提到了content_type。 validates_attachment_content_type :upload_file, :content_type => %w(application/msword application/vnd.ms-office application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet), :message => ‘, Only XML,EXCEL files are allowed. ‘ 我不知道为什么会发生这种错误。 如果您对此错误有任何疑问,请分享。 摘自日志以显示validation失败: Command :: file -b –mime-type ‘/tmp/5249540099071db4e41e119388e9dd6220140513-24023-1jlg4zy’ [paperclip] Content Type Spoof: Filename file_for_bulk_upload1.xlsx ([“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”]), content type discovered […]

如何跳过has_secure_passwordvalidation

在我的应用程序中,只有管理员可以创建新的用户记录。 用户通过电子邮件发送激活链接,并在其中设置密码。 我想使用has_secure_passord方法( railscast ): class User < ActiveRecord::Base has_secure_password … end 效果很好,但它会自动validation密码摘要的存在…所以当管理员创建记录时,validation失败。 我有办法跳过自动添加的password_digestvalidation而不跳过我添加的其他人吗?

Rails形成validation条件绕过

我有一个rails模型,可以validation2个表单值的唯一性。 如果这两个值不唯一,则显示validation错误,并将“提交”按钮更改为“重新提交”。 我想允许用户单击“重新提交”按钮并绕过模型validation。 我想从railsvalidation文档中做这样的事情: validates_uniqueness_of :value, :unless => Proc.new { |user| user.signup_step <= 2 } 但是我的模型中没有值,我可以检查…只是具有“重新提交”值的参数。 关于如何做到这一点的任何想法?