草庐IT

ruby-on-rails - 我的 Rails 4 应用程序上的每个 link_to 都被调用了两次

我的Rails4应用程序遇到一些异常行为。每次我单击View中的link_to时,我的Controller操作都会被调用两次。例如:在我的root_url中,我对users_profile有这个标准调用:"logout-button")%>当我单击此链接时,我的控制台显示以下输出:StartedGET"/users/profile"for127.0.0.1at2013-11-2520:45:53-0200ProcessingbyUsers::SessionsController#profileasHTMLUserLoad(0.7ms)SELECT"users".*FROM"users"

ruby-on-rails - 如何在 Rails Controller 操作的 RSpec 测试中指定查询字符串?

我有一个名为yearly_csv的操作。在此操作中,我执行两个操作,如需求和供应。defyearly_csvifdemand=='true'demand_csvelsesupply_csvendend我的View中有两个单选按钮来选择其中一个操作。现在我想在RSpec中单独测试每个操作。例如,一个供应规范和另一个需求规范。我的问题是如何将单选按钮值传递给yearly_csv操作(get)? 最佳答案 在RSpec的较新版本中,您必须使用params键声明查询字符串参数:get:yearly_csv,params:{demand:'t

ruby - 无法运行 RSpec(未初始化的常量用户(NameError)

尝试运行bundleexecrspecspec/models/user_spec.rb但未能执行(请参阅下面的错误)。user_spec.rb的内容:require'rails_helper'describeUserdopending"addsomeexamplesto(ordelete)#{__FILE__}"end如果我删除最后3行,那么它将完成0个示例和0个失败。但是,当存在最后​​3行时,它会产生错误/spec/models/user_spec.rb:4:in`':uninitializedconstantUser(NameError)from/var/lib/gems/1.9

ruby - rspec 测试 ruby​​ 方法是否返回数组

我有一个返回数组的方法。我需要使用rspec对其进行测试。有没有我们可以测试的方法:defget_ids####returnsarrayofidsendsubject.get_ids.shouldbe_array或result=subject.get_idsresult.shouldbean_instance_of(Array) 最佳答案 好吧,这取决于您要查找的内容。检查返回值是否为数组(be_an_instance_of):expect(subject.get_ids).tobe_an_instance_of(Array)或者检

ruby-on-rails - 找不到有效的 gem : certificate verify failed

我正在尝试建立到远程服务器的ssh隧道,如下所述:SSHfromHerokuintoremoteserverwithMysqlDb但是我只是想下载gems就挂断了。我补充说:#file:Gemfile...gem'net-ssh-gateway','~>1.2.0'但是当我执行bundleinstall(或者甚至只是在命令行上执行geminstallnet-ssh)时,我得到:ERROR:Couldnotfindavalidgem'net-ssh'(>=0),hereiswhy:Unabletodownloaddatafromhttps://rubygems.org/-SSL_conn

ruby-on-rails - 安装 ruby​​ ruby​​-1.9.3-p551 时出错

在安装ruby​​版本1.9.3-p551时出现以下错误。ruby-1.9.3-p551-#removingsrc/ruby-1.9.3-p551-pleasewaitSearchingforbinaryrubies,thismighttakesometime.Nobinaryrubiesavailablefor:osx/10.10/x86_64/ruby-1.9.3-p551.Continuingwithcompilation.Pleaseread'rvmhelpmount'togetmoreinformationonbinaryrubies.Checkingrequirements

ruby - `TRUE` 和 `true` 之间有区别吗?

TrueClass、FalseClass和NilClass有两个实例,名称不同:一个小写,一个大写。一个实例似乎对另一个实例进行评估:true#=>trueTRUE#=>truetrue==TRUE#=>true这两个常量之间有区别吗?如果有,区别是什么?如果它们相同,我应该在我的代码中使用这些常量中的哪一个?我应该写some_value=true还是some_value=TRUE? 最佳答案 不同之处在于,true是Ruby中的关键字,而TRUE是常量:true=1#=>SyntaxError:Can'tassigntotrueT

ruby-on-rails - Ruby on Rails 平均水平?

有没有一种简单的方法可以获取集合中某个属性的平均值?例如,每个用户都有一个分数。给定一组用户(@users),您如何获得该组的平均分?有没有类似@users.average(:score)的东西?我想我在数据库字段中遇到过类似的东西,但我需要它来处理集合...... 最佳答案 对于你的问题,实际上可以这样做:@users.collect(&:score).sum.to_f/@users.lengthif@users.length>0早些时候我认为,@users.collect(&:score).average会起作用。对于数据库字段

ruby - self.attribute 与 @attribute 的优势?

假设如下:defcreate_new_saltself.salt=self.object_id.to_s+rand.to_send为什么使用“self”更好。而不是实例变量“@salt”? 最佳答案 如果已定义,使用self.salt=将导致使用salt=方法。这对于确保使用salt=方法内的任何错误检查/转换很有用。然而,这意味着必须有一个明确的salt=方法(例如,可能由attr_accessor创建),这不一定是个好主意。总结:如果你有一个自定义的salt=方法,使用self.salt=;使用@salt=如果你确切地知道你想要

ruby - 为什么 Ruby 需要 .call 来调用 Proc?

我只是想知道在Ruby中必须使用proc.call(args)调用Proc是否有任何充分的理由甚至优势,这使得更高-order函数语法更冗长且更不直观。为什么不只是proc(args)?为什么要区分函数、lambda和block?基本上,它们都是一样的,那么为什么要使用这种令人困惑的语法呢?或者有什么我没有意识到的意义吗? 最佳答案 您需要一些方法来区分调用Proc和传递它。在Python和ECMAScript中,这很简单:有括号就是调用,没有括号就不是。在Ruby中,省略括号也是一个调用,因此,必须有一些其他方式来区分。在Ruby