问题标签 [ruby-1.8.7]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
34655 浏览

ruby - Ruby 需要“文件”和相对位置

所以我正在编写一些 rspec 测试,但我对我缺乏对 Ruby 的理解感到尴尬。

我的文件结构如下所示:

  • GUI_Tests/Tests/test_spec.rb
  • GUI_Tests/windows_gui.rb
  • GUI_Tests/upload_tool.rb

当我为 test_spec.rb 文件运行规范时,我需要像这样包含 upload_tool 文件:

然后,upload_tool 需要 windows_gui.rb,如下所示:

我的问题是,为什么我必须参考相对于 test_spec.rb(需要 ../)而不是 upload_tool.rb 的 windows_gui.rb?这对我来说感觉不对,我想在测试规范之外使用upload_tool.rb,这意味着每次都改变需求。

显然我遗漏了一些东西,但如果我没有参考相对于测试规范的内容,我会得到一个找不到文件的错误。

抱歉在这里如此无知,但我空手而归。任何想法表示赞赏。

BB

0 投票
1 回答
586 浏览

ruby - Enumerable::each_with_index 现在在 Ruby 1.9 中可选地接受一个参数。有什么意义和/或用例是什么?

在 Ruby 1.8.7 和之前的版本中,Enumerable::each_with_index不接受任何参数。在 Ruby 1.9 中,它将接受任意数量的参数。文档/代码显示它只是将这些参数传递给::each. 使用内置和标准库 Enumerables,我相信传递参数会产生错误,因为 Enumerable 的::each方法不需要参数。

所以我猜这仅在创建您自己的 Enumerable 时有用,您可以在其中创建一个::each接受参数的方法。什么是有用的例子?

这种变化还有其他不明显的后果吗?

0 投票
2 回答
2717 浏览

ruby-on-rails - 哈希不包含“尝试”方法

我注意到 Ruby 1.8.7 中的哈希对象和 Rails 3.0.10 中的哈希对象之间的差异。

例如,在 1.8.7irb中,我得到:

但是,从 3.0.10 rails 控制台,我得到:

这让我感到惊讶,因为我的印象try是 Object 中定义的,它是 Hash 的祖先,并且try将返回 nil 而不是抛出 NoMethodError。

我错过了什么?

0 投票
3 回答
204 浏览

ruby-on-rails - ruby regexp - 如何搜索一个词,但如果另一个词存在则不搜索(在 url/uri 中)。?

如何在 ruby​​ 1.8 中执行匹配的正则表达式:

但如果我有:

到目前为止我有

对于初始比赛,我如何添加第二个取消资格/deeper_stuff

以便

被排除在外。

0 投票
3 回答
1087 浏览

ruby-on-rails - rails 3.2 ruby​​ 1.8.7 iconv (LoadError)

使用 rails 3.2.3 和 ruby​​ 1.8.7-p334 或 p358 时出现错误。不幸的是,我必须使用 1.8.7,因为我正在部署的虚拟主机使用 1.8.7 补丁级别 334。我和同事在 Mint 或我的 Macbook Pro 上使用 Xcode 4.2.1 运行它没有问题,但我可以做一个 rails 服务器或我的 iMac 上的控制台

我尝试从 4.3.2 xcode 降级到 4.1 但没有效果。在 rvm 或系统上安装 readline 也不行。我还尝试在 rvm 上安装包安装 iconv。也许有人知道这个解决方案?

这是我的错误:/ruby-1.8.7-p334@porject/gems/json-1.6.6/lib/json/common.rb:407:in `require': no such file to load -- iconv (LoadError)

0 投票
2 回答
346 浏览

ruby - 如何禁用ruby UDPSocket解析recvfrom上的IP地址?

做数据时,addr = @socket.recvfrom(1500),addr数组包含Array: ["AF_INET", port, "resolved-name-or-ip", "ip"]

如何禁用 UDPSocket 上的解析?ruby UDPSocket 的文档有点差。

0 投票
1 回答
315 浏览

ruby-on-rails - Ruby 路由和自定义操作

我正在尝试将 Devise 和 Cancan 合并到一个网络应用程序中。我希望具有 :role => "admin" 的用户能够删除用户,而 Devise 的销毁操作只允许用户删除自己,因此我为此创建了一个自定义操作。(为了覆盖插件的控制器文件,我已将注册控制器复制到 app/controllers/registrations_controller.rb。)

这是我在 registrations_controller.rb 中的自定义操作:

这是我尝试使用它的方式,在您查看用户个人资料的页面上的链接中。(我设置了一些东西,以便每个用户都有一个配置文件;配置文件是您在前端看到的。配置文件会在用户注册时在配置文件表中自动创建。)

我的测试显示 2 个我无法解决的故障:

1) ProfilesController GET show 以管理员身份登录时应该有一个链接来编辑配置文件 Failure/Error: get :show, :id => @profile ActionView::Template::Error: undefined method destroy_user_account' for #<#<Class:0x105b474a8>:0x1057f32e8> # ./app/views/profiles/show.html.erb:41:in_app_views_profiles_show_html_erb___917863454_2195331000_0' # ./spec/控制器/profiles_controller_spec.rb:143

2) ProfilesController GET show 以管理员身份登录时应该有一个删除用户帐户的链接(使用注册控制器中的 destroy_user_account 操作)失败/错误:get :show, :id => @profile ActionView::Template::错误:未定义的方法destroy_user_account' for #<#<Class:0x105b474a8>:0x105806d20> # ./app/views/profiles/show.html.erb:41:in_app_views_profiles_show_html_erb___917863454_2195331000_0' # ./spec/controllers/profiles_controller_spec.rb:148

此外,当我在浏览器中尝试时,单击“删除用户”链接会出现以下错误:

路由错误

没有路由匹配“/destroy-user-account/2”

以下是应涵盖此的路线:

devise_for :users, #:path => '', :skip => [ :confirmations, :passwords, :registrations ], :controllers => { :registrations => "registrations" } 做

谁能帮助我做错了什么?

0 投票
2 回答
2556 浏览

ruby-on-rails - Rspec link_to - 包括确认/数据确认属性导致测试失败

我有一个链接如下,我正在尝试测试(请忽略方括号):

[%= link_to "删除用户", destroy_user_account_path(@profile.user), :class => "delete", :confirm => "a", :title => "Delete #{@profile.user.name}", :method => :delete %]

下面的测试失败,但如果我注释掉 :confirm => "a" 行,它会通过:

看我的失败:(

该行的实际 html 输出如下(同样,方括号是我的)。我注意到它在这里输出“数据确认”作为属性,而不是测试所期望的“确认”属性。

[a href="/destroy-user-account/159" class="delete" data-confirm="a" data-method="delete" rel="nofollow" title="删除 Michael Hartl"]删除用户[/一种]

谁能解释在这种情况下确认和数据确认之间有什么区别,并帮助我弄清楚为什么会出现此错误/如何解决?

谢谢!

0 投票
1 回答
357 浏览

mysql - 无法使用 Rails 在 MySQL 表中存储 UTC 时间

我能够将字符串格式的本地时间转换为 UTC 时间格式。但是当我将这个 UTC 时间保存在我的 MySQL 表中时,它会以一种奇怪的格式保存。

当我从表中查询“time_column”列时,我得到

代替,

time_column 的“类型”是“DATETIME”
Rails 版本 3.0.9
config.time_zone = environment.rb 文件中的“UTC”

我花了很多时间试图找出问题所在,但徒劳无功。

0 投票
1 回答
526 浏览

ruby-on-rails - Rails 应用程序中的时间字段全部填充为 2000 年 1 月 1 日凌晨 12:00

我正在使用 Time 在我正在处理的事件控制器中保存开始和结束日期。但是,我的应用程序忽略了在浏览器和我的 Rspec 测试中的测试和开发环境中提交时间信息。似乎正在创造一个时间,但在我所有的测试中,围绕这个时间的结果始终是 2000 年 1 月 1 日凌晨 12:00。

任何人都可以帮助确定问题吗?

以下测试由于不同的原因而失败(请不要担心这一点),但它显示了问题的严重程度。测试中提交的 end_time 不是 2000 年 1 月 1 日凌晨 12:00。

失败:

1) 如果提供了结束日期/时间(可选字段),EventsController GET 在登录时显示 多日事件的显示显示结束日期

失败/错误:response.should have_selector("span", :class => "end_time_date",预期以下输出包含 2000 年 1 月 1 日星期六标签:

上面失败的测试:

您可以在其中看到 start_time 和 end_time 属性的模型非常易于访问,并且(在此时为 start_date 的情况下)需要:

FactoryGirl 事件的生成似乎无关紧要,因为浏览器中也发生了同样的问题,但我也会将其包括在此处以防万一。你可以看到(从这里注释掉的位)我已经尝试硬编码数字来创建日期/时间;这并没有解决任何问题。

我的迁移:

类 CreateEvents < ActiveRecord::Migration

def self.up

呐呐!发生了什么事?!