草庐IT

test_nil_is_an_object

全部标签

ruby-on-rails - rails 引擎 : rake routes show its routes but on rspec execution "No route matches" is thrown

我正在尝试测试我的应用程序正在使用的引擎内部的Controller。规范不在引擎中,而是在应用程序本身中(我试图在引擎中进行测试,但也遇到了问题)。我的引擎有以下routes.rb:Revision::Engine.routes.drawdoresources:steps,only:[]docollection{get:first}endend引擎正常挂载在应用routes.rb上:mountRevision::Engine=>"revision"当我运行rakeroutes时,在最后一行我得到:RoutesforRevision::Engine:first_stepsGET/step

ruby-on-rails - Ruby BigDecimal 圆 : Is this an error?

在用一个表示为BigDecimal的值编写测试时,我遇到了一些奇怪的事情并决定深入研究它。简而言之,四舍五入到小数点后两位的“0.00009”返回为0.01而不是0.00。真的。这是我的脚本/控制台捕获:>>bp=BigDecimal('0.09')=>#>>bp.round(2,BigDecimal::ROUND_HALF_DOWN).to_f=>0.09>>bp=BigDecimal('0.009')=>#>>bp.round(2,BigDecimal::ROUND_HALF_DOWN).to_f=>0.01>>bp=BigDecimal('0.0009')=>#>>bp.roun

ruby-on-rails - 工厂女孩 : Automatically assigning parent objects

我刚刚进入FactoryGirl,我遇到了一个困难,我相信应该容易得多。我只是无法将文档扭曲成一个工作示例。假设我有以下模型:classLeague我想做的是:team=Factory.build(:team_with_players)并让它为我培养了一批玩家。我试过这个:Factory.define:team_with_players,:class=>:teamdo|t|t.sequence{|n|"team-#{n}"}t.players{|p|25.times{Factory.build(:player,:team=>t)}}end但这在:team=>t部分失败了,因为t并不是真

ruby-on-rails - 在 Rails 中使用 object_id 列的含义

关于Object本身包含object_id并覆盖它的模型(对于多态关联)具有object_id/object_type的含义是什么(http://ruby-doc.org/core-2.3.1/Object.html#method-i-object_id)?classEventbelongs_to:object,polymorphic:true#object_id/object_typeend 最佳答案 当我在我的一个Rails项目(包括所有Gem)的整个代码库中搜索object_id时,我可以看到超过200个匹配项。仅在Rails

ruby-on-rails - object.count 返回 0。但是 object.any?返回真。发生了什么?

@card.submissions返回:]>@card.submissions.any?返回true。@card.submissions.count返回0。我要实现的是:if@card.submissions.any?render@card.submissionsend 最佳答案 看起来Submission是一个新记录(因为id是nil)。如果它是新的,它还没有进入数据库。count对数据库进行SQL调用以确定行数,因此正确地返回零。any?返回true,因为集合中有一个对象。如果您尝试@card.submissions.to_a.

ruby - "Assignment Branch Condition size for index is too high"是如何工作的?

Rubocop总是报告错误:app/controllers/account_controller.rb:5:3:C:AssignmentBranchConditionsizeforindexistoohigh.[30.95/24]ifparams[:role]@users=@search.result.where(:role=>params[:role])elsifparams[:q]&¶ms[:q][:s].include?('count')@users=@search.result.order(params[:q][:s])else@users=@search.result

ruby-on-rails - "gem update --system is disabled on Debian"错误

当我尝试更新ruby​​gems(通过运行“gemupdate--system”)时出现此错误:ERROR:Whileexecutinggem...(RuntimeError)gemupdate--systemisdisabledonDebian.RubyGemscanbeupdatedusingtheofficialDebianrepositoriesbyaptitudeorapt-get.知道可能出了什么问题以及如何解决它吗? 最佳答案 有两种方法:摆脱debianruby​​包并从源代码安装ruby​​,或者您可以按照给您的说

ruby-on-rails - Ruby 中的 Nil 和 bool 值

有人能解释一下这是什么原因吗?刚刚花了30分钟试图弄清楚为什么我的bool方法返回nil并在Ruby中发现:2.2.1:001>nil&&true=>nil2.2.1:002>nil&&false=>nil由于nil是一个假值,我本以为nil&&true的输出是假的。此外,这似乎与条件运算符应返回bool值的想法背道而驰。这背后的原理是什么?bool运算符不可交换是有道理的:nil&&false!=false&&nil对于看到这个的其他人,我的问题是在rails中我有这样的声明:defsome_method?object.attr&&object.attr>somethingend但是

ruby-on-rails - 如何使用 Test::Unit 跳过某些测试

在我的一个项目中,我需要与多个后端系统协作。其中一些缺少文档,部分原因是我有一些测试代码与一些测试服务器交互,只是为了查看一切都按预期工作。但是,访问这些服务器非常慢,因此我不想在每次运行测试套件时都运行这些测试。我的问题是如何处理您想跳过某些测试的情况。目前我使用一个环境变量“BACKEND_TEST”和一个条件语句来检查是否为我想跳过的每个测试设置了变量。但有时我想跳过测试文件中的所有测试,而不必在每个测试的开头添加额外的行。需要与测试服务器交互的测试并不多,因为我在其他情况下使用flexmock。但是,您不能mock自己远离现实。从这个问题的标题可以看出,我使用的是Test::U

ruby - 无法将 nil 转换为字符串

我不了解Ruby,但我的应用程序遇到了这个问题。有人可以帮助我吗?ActionView::TemplateError(can'tconvertnilintoString)online#74::5:Estadooriginal:6:'\1')%>7:8:url_for(opinion),:method=>:put,:with=>'"opinion[opinion]=POSITIVE"'},:class=>:positive)%>9:url_for(opinion),:method=>:put,:with=>'"opinion[opinion]=OBJECTIVE"'},:class=>: