小编Sim*_*tti的帖子

尝试运行测试时获取未初始化的常量错误

我刚刚更新了所有的宝石,我发现在尝试运行Test :: Unit测试时我遇到了错误.我收到下面复制的错误.这来自于创建新的空Rails项目,搭建一个简单的模型和运行rake test.

尝试谷歌搜索"未初始化的常量"和TestResultFailureSupport.我发现的唯一一件事是2007年的这个错误报告.

我正在使用OS X.

这些是我在测试停止工作之前更新的宝石:

$ sudo gem outdated
Password:
RedCloth (4.2.1 < 4.2.2)
RubyInline (3.8.1 < 3.8.2)
ZenTest (4.1.1 < 4.1.3)
bluecloth (2.0.4 < 2.0.5)
capistrano (2.5.5 < 2.5.8)
haml (2.0.9 < 2.2.1)
hoe (2.2.0 < 2.3.2)
json (1.1.6 < 1.1.7)
mocha (0.9.5 < 0.9.7)
rest-client (1.0.2 < 1.0.3)
thoughtbot-factory_girl (1.2.1 < 1.2.2)
thoughtbot-shoulda (2.10.1 < 2.10.2)
Run Code Online (Sandbox Code Playgroud)

还有其他人看过这个问题吗?任何疑难解答建议


UPDATE

在预感中,我将ZenTest从4.1.3降级回4.1.1现在一切都恢复正常.

仍然很想知道是否有其他人看过这个或有任何有趣的评论或见解.


$ rake test
(in /Users/me/foo)
/usr/local/bin/ruby -I"lib:test" "/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/unit/helpers/users_helper_test.rb" "test/unit/user_test.rb" 
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:105:in …
Run Code Online (Sandbox Code Playgroud)

ruby testing ruby-on-rails

12
推荐指数
2
解决办法
2万
查看次数

安全地转义SQL片段的字符串,以便在Rails上进行连接,限制,选择等(而不是条件)

在Ruby on Rails中,对于条件,很容易进行SQL注入证明查询:

:conditions => ["title = ?", title]
Run Code Online (Sandbox Code Playgroud)

标题来自外部,来自网络表单或类似的东西.

但是,如果您在查询的其他部分使用SQL片段,例如:

:select => "\"#{title}\" AS title"   # I do have something like this in one instance
:joins => ["LEFT JOIN blah AS blah2 ON blah2.title = \"#{title}\""]
Run Code Online (Sandbox Code Playgroud)

有没有办法正确逃脱这些字符串?

ruby sql-injection escaping ruby-on-rails

12
推荐指数
1
解决办法
7549
查看次数

如何为功能测试(Rails)设置locale default_url_options

在我的application_controller中,我有以下设置来包含具有url_for生成的所有路径的语言环境:

  def default_url_options(options={})
    { :locale => I18n.locale }
  end
Run Code Online (Sandbox Code Playgroud)

我的资源路由有一个:path_prefix ="/:locale"

在网站上正常工作.

但是当涉及到我的功能测试时,:locale不会与生成的url一起传递,因此它们都会失败.我可以通过在我的测试中将语言环境添加到url来解决它,如下所示:

  get :new, :locale => 'en'
Run Code Online (Sandbox Code Playgroud)

但我不想手动将语言环境添加到每个功能测试中.

我尝试将default_url_options def添加到test_helper上面,但似乎没有效果.

有什么办法可以更改default_url_options以包含我所有测试的区域设置吗?

谢谢.

testing ruby-on-rails internationalization

12
推荐指数
3
解决办法
5625
查看次数

如果数据库关闭,为什么准系统Rails控制器会阻塞?

我有一个简单的Rails控制器,它不依赖于数据库.

class PingController < ActionController::Base
  def ping
    render text: 'The service is up'
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,当数据库关闭时,此控制器操作会阻塞.为什么会这样?

ruby ruby-on-rails

12
推荐指数
1
解决办法
80
查看次数

Django或Ruby on Rails

我是一名C#/ .NET开发人员,希望能够完全不同的东西 - LAM(*)堆栈用于快速构建Web应用程序.

我在想Django或Rails.我有点像Python语言,它似乎比Ruby更全面,用于统计,科学和网络(如果你认为这是错误的,请告诉我).然而,RoR社区似乎要大得多 - 这可能会让它更安全.你觉得这很重要吗?有人有RoR和Django的经验吗?


更新:具体来说,我希望能够快速建立一个面向社区财务的网站.肯定有很多Ruby Gems可以加速这个过程,但我注意到Django上的Pinax看起来很有前途.我知道Python已经非常受金融/数学编程的欢迎.其他人有意见吗?


更新2:注意到有关ASP.NET MVC的一些注释.事实上,我已经完成了ASP.NET MVC的非常重要的工作 - 一个用于医疗设备服务的LOB应用程序,我喜欢它.与ASP.NET Web表单相比,IMHO是一种更好,更直观的Web应用程序编写方式.但是,我真的在寻找一个非.NET开发环境来开发一些chops.

c# ruby python django ruby-on-rails

11
推荐指数
6
解决办法
6267
查看次数

Capistrano与Rake有什么关系?

在使用Rake任务长时间部署应用程序后,我开始阅读Capistrano.它与Rake的相似之处真是惊人.许多并行命令(如cap -T)和许多相同的概念(命名空间,任务).

有谁知道背后的历史?Capistrano是Rake的延伸,还是建立在它之上?

ruby deployment rake capistrano ruby-on-rails

11
推荐指数
1
解决办法
2195
查看次数

用于清除Rails中基于cookie的会话存储的命令

我经常想清除Rails中的会话存储,特别是默认的基于cookie的会话存储.有些网站似乎暗示了这一点

rake tmp:sessions:clear
Run Code Online (Sandbox Code Playgroud)

完成这项任务,但似乎没有.清除基于cookie的会话存储的正确方法是什么?

cookies session ruby-on-rails

11
推荐指数
3
解决办法
2万
查看次数

Rails where子句超过两个表

我在rails应用程序中有以下模型

category => company => store
Run Code Online (Sandbox Code Playgroud)

商店有belongs_to公司,公司有belongs_to类别关系.现在我想在商店对象上使用where方法来检索同一类别中的所有商店.

我想要这样的东西

@stores.nearbys(5).where("stores.company.category_id = xxx")
Run Code Online (Sandbox Code Playgroud)

有人可以给我一个提示

ruby ruby-on-rails where-clause

11
推荐指数
2
解决办法
2万
查看次数

to_json在Rails中返回字符串而不是json

以下代码应该返回一个json:

  @series = @series.map do |serie| {
    :name => serie.name,
    :id => serie.id
  }

  @series.to_json
Run Code Online (Sandbox Code Playgroud)

它的回报如下:

"[{\"name\":\"Barra\",\"id\":3},{\"name\":\"Botafogo 1\",\"id\":1},{\"name\":\"Botafogo 2\",\"id\":2},{\"name\":\"Tijuca\",\"id\":4}]"
Run Code Online (Sandbox Code Playgroud)

为什么它返回一个字符串而不是一个json?

我的.rb文件顶部安装并需要'json'gem

string gem json ruby-on-rails

11
推荐指数
1
解决办法
6632
查看次数

rails 3和rubyzip 1.0.0 uninitialized constant Zip :: ZipFile

我试图打开一个docx文件并使用rubyzip 1.0.0和rails 3写回来.

在我的gemfile中我有:

gem 'rubyzip'
Run Code Online (Sandbox Code Playgroud)

我正在运行的代码是;

module Look

  class Generator

    def initialize(item)
      doc   = Nokogiri::XML.parse(item.to_xml)
      xslt  = Nokogiri::XSLT(File.read("<path_to_xslt_file>.xslt"))
      @outxml=xslt.transform(doc)
      zip = Zip::ZipFile.open("<path_to_docx_file>.docx")
      @outxml
    end

  end

end
Run Code Online (Sandbox Code Playgroud)

虽然正确创建了@outxml(我可以手动将其添加到docx文件并查看结果),但我甚至无法开始创建zip文件,因为这...

uninitialized constant Zip::ZipFile
Run Code Online (Sandbox Code Playgroud)

检查了所有文档并尝试了很多组合后,我仍然感到非常难过.

任何人都可以告诉我为什么这不起作用?

谢谢.

ruby-on-rails rubyzip

11
推荐指数
1
解决办法
6888
查看次数