草庐IT

happen-before

全部标签

ruby - Rails 事件记录 : Calling Build Method Should Not Save To Database Before Calling Save Method

我有一个简单的用户模型classUser还有一个简单的user_profile模型classUserProfile问题是当我调用下面的构建方法时,没有调用保存方法,我最终在数据库中得到了一条新记录(如果它通过了验证)classUserProfilesController任何人都知道发生了什么事。这个方法的定义如下,但它仍然为我保存build_association(attributes={})Returnsanewobjectoftheassociatedtypethathasbeeninstantiatedwithattributesandlinkedtothisobjectthro

ruby - 主要 :Object 的未定义方法 `before'

我从下面的代码部分收到上述错误。这是什么原因?1require'spec_helper'23before(:all)do4puts"ServerSpectestson#{ENV['TARGET_HOST']}"5end完整错误:/home/newatson/src/serverspec/spec/cfengine3/common_spec.rb:3:in`':undefinedmethod`before'formain:Object(NoMethodError)from/home/newatson/.gem/ruby/1.9.1/gems/rspec-core-3.2.3/lib/rs

ruby-on-rails - rails : Multiple parameters before do?

我有这个有效的语法(因为它几乎来自API)"whatever"do-%>还有这个,有效"whatever"},{:method=>"get"})%>现在我尝试将它们结合起来,猜测语法。“get”没有像我希望的那样被添加为表单方法。这应该怎么读?"whatever",:method=>"get"do-%>表单标签应为:不是 最佳答案 'whatever'},:method=>"get")do-%>查看APIdocs,问题是:method需要进入options散列,而:action需要进入url_for_options散列,你需要额外的

ruby - 是否可以在 Ruby 中执行 before_action(就像在 Rails 中一样)?

是否可以像在rails中那样在某些指定方法之前调用before_action?classCalculatorbefore_action{raiseException,"calculatorisempty"if@numbers.nil?},only:[:plus,:minus,:divide,:times]defpushnumber@numbers||=[]@numbers 最佳答案 它可以用纯Ruby来完成!一种方法是使用methodaliasingclassFoodefbar#truebarendalias_method:orig

ruby-on-rails - 当处理文件 before_save 时出错,验证后,我应该引发异常还是返回 false 并添加错误?

例如,如果我有一个通过所有验证的图像,例如大小、尺寸、类型等,但是当我必须处理它时,由于某些未知原因ImageMagick无论如何都会抛出一个错误...应该如何处理我处理那个? 最佳答案 对于Rails4和更早的版本ActiveRecordValidationsandCallbacksGuide:Ifanybeforecallbackmethodreturnsexactlyfalseorraisesanexception,theexecutionchaingetshaltedandaROLLBACKisissued[...]因此,您

ruby - RSpec - 如果我避免使用 let、let 和 before,如何实现相同的功能?

我听说最好避免在RSpec中使用its,let,let!,specify,before,和subject。关于let,let!和before,如果不使用它们,我该如何执行设置任务? 最佳答案 编写这些最佳实践的人实际上只想说“不要使用RSpec”。避免使用核心功能并仍然认为你可以把事情做好是很疯狂的。你能链接到这些最佳实践吗?我很想阅读它们,看看它们是否合理,或者只是一些j-random-guy的意见。避免before和let?什么?真的吗?避免specify,我想,这只是it的旧语法。避免特定的subject电话?我想,如果您的代

ruby - 在 RSpec 中,如何在访问主题的子上下文中添加一个 before 钩子(Hook)?

考虑以下几点:describeMyModeldocontext'updatesfields'dosubject{create(:my_model)}beforedosubject.savesubject.reloadendcontext'whenchangingfoo.bar'dobefore{subject.foo.bar=3}it{is_expected.tobe_multiple_bar}endcontext'whenchangingbaz.quux'dobefore{subject.baz.quux=3}it{is_expected.tobe_multiple_quux}end

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 - 如何在之前访问标签过滤器(:suite)/before(:all) hook in RSpec?

我想访问命令行传递的标签过滤器命令行rspec--taguse_ffRSpec配置RSpec.configuredo|config|config.before:suite,type::featuredo#howdoIcheckifuse_fffilterwasspecifiedinthecommandline?iffilter[:use_ff]use_seleniumelseuse_poltergeistendendend在before(:suite)钩子(Hook)中,我想访问在配置的命令行中指定的标签过滤器。根据rspec-core代码库,包含标签过滤器存储在inclusion_f

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