草庐IT

​​:valid​​

全部标签

ruby-on-rails - before_validation 没有被调用?

我遇到了一个奇怪的问题,我找不到合理的解释。我正在调查一个错误并放置一些日志记录(通过Rollbar),这样我就可以看到我的模型之一的一些实例的演变。这是我得到的:classConnexionself.id,:connexion_details=>self.attributes)endend现在我在rollbar中获取大量数据(每次创建/更新连接时几乎有2行)。但奇怪的是:对于某些连接(=>正是我正在调查的那些有错误数据的连接),我根本没有得到任何数据!我不明白如何创建连接并将其持久保存到数据库,并且没有任何before_validation日志记录的踪迹。看起来回调没有被调用,但除非

ruby-on-rails - 目录 : Model validation question

我有一个基本的ActiveRecord模型,其中我有两个要验证的字段。要求是至少有一个字段必须有值。两者都可以有值,但至少有一个需要有值。我该如何表达validates_presence_of声明?例如:validates_presence_of:main_filevalidates_presence_of:alt_file我不希望只有其中一个为空时才产生错误,只有两个都为空时才产生错误。 最佳答案 validates_presence_of:main_file,:if=>Proc.new{|p|p.alt_file.blank?}

javascript - Rails 抛出 "REXML::ParseException does not have a valid root"异常

我有一个JavaScript对象,并使用DouglasCrockford'sJSONutility将其转换为JSON.在发送AJAX后请求时,我得到:REXML::ParseExceptiondoesnothaveavalidrootREXML::ParseException(Thedocument"{\"name\":\"asda\",\"deadline\":\"May24,2011\"}"doesnothaveavalidroot):我无法继续处理此错误。 最佳答案 发出AJAX请求时,您可能发送了错误的Content-Typ

ruby-on-rails - rails : force a model to be not valid

我有一个非常特殊的情况,我想强制模型实例无效。像这样:user=User.newuser.valid?#trueuser.make_not_valid!user.valid?#false有什么办法可以实现吗?谢谢! 最佳答案 你可以这样做:validate:forced_to_be_invaliddefmake_not_valid!@not_valid=trueendprivatedefforced_to_be_invaliderrors.add(:base,'hasbeenforcedtobeinvalid')if@not_val

ruby-on-rails - 如果使用 validates_length_of,是否需要 validates_presence_of?

在ActiveRecord模型中,当还使用validates_length_of时,使用validates_presence_of是否被认为是最佳实践/必要?例如:classCompany5..30end对我来说,这似乎是多余的。长度在5到30之间意味着该属性也存在,但我看到它无处不在。这也意味着用户会收到两条关于同一缺失属性的错误消息,而实际上只需要一个。我是否遗漏了什么,或者人们在验证数据时是否过于热心? 最佳答案 validates_presence_of在与validates_length_of一起使用时完全多余,除非您提供

ruby-on-rails - Rails 的 "validates"是什么类型的语言结构?

我刚刚开始理解Ruby。我的背景是.NET和PHP。在Rails中,而且我确信在其他框架中,我在类中看到类似这样的内容:classPersontrueend“验证”到底是什么?它是一个函数吗?如果它是一个函数,那么验证实际上是如何工作的,因为您没有告诉验证函数您正在验证哪个模型?我在哪里可以阅读更多有关幕后实际工作原理的信息? 最佳答案 这...有点复杂-但简短的回答是validates是Person的类方法,继承自ActiveRecord::Base.该行同样可以写成validates(:terms_of_service,:acc

ruby-on-rails - Rspec 和 'before_validation' 回调问题

我正在使用RubyonRails3.0.9和RSpec2。我知道使用RSpec和before_validation回调存在一些已知问题,因为before_validation在spec文件中运行时似乎不会被触发。您可以找到很多类似的问题(例如,通过执行Googlesearch)。我想知道目前是否有人想出了解决这个问题的方法?P.S.:我读到一些人建议使用模拟,其他人建议从before_validation切换到其他回调(例如:到before_save)或使用save(:validate=>false)方法(因此跳过验证)...等等...但似乎没有人解决了“真实”的问题。您认为在这种情况

ruby-on-rails - 从 Meta_search 升级到 Ransack 时出现 "No valid predicate"错误?

我有一个ActiveRecord模型,其方法定义如下:defstateifdeleted?:deletedelse:expiredendend“search_method”在模型中定义为:search_method:state在View中:=form.select:state,{:expired=>'Expired',:deleted=>'Deleted'}.invert,:include_blank=>'All'对于Meta_search,此方法运行良好。但是当我用Ransack替换gem时,我在示例Controller中得到:ArgumentError没有有效的状态谓词。我正在遵循

ruby-on-rails - rails 3 : Uniqueness validation for nested fields_for - Part2

我是编码新手-没有足够的声誉来评论这个答案:Rails3:Uniquenessvalidationfornestedfields_for所以我将这个问题创建为“第2部分”:)我是一名网页设计师,但我对学习编码充满好奇,从我小时候就一直坚持着这一点。#app/validators/nested_attributes_uniqueness_validator.rbclassNestedAttributesUniquenessValidator上面带有“ActiveModel::EachValidator”的代码抛出这个错误:““区域1”的未定义方法`map':字符串”#app/valida

ruby-on-rails - gmaps4rails validates before validates presence set to true

提交空地址字段时遇到以下错误。Gmaps4rails::LocationsController中的GeocodeInvalidQuery#create您必须提供一个地址我的模型classLocationtrueacts_as_gmappabledefgmaps4rails_addressaddressenddefgmaps4rails_infowindow"#{name}"#{address}"endend为什么它从不验证地址字段存在与否并直接抛出错误? 最佳答案 已在0.8.7中修复,现在通常会将错误添加到地址字段。Gmaps4r