标签: ruby

Ruby有堆栈,队列,链表,地图或集合等容器吗?

我在网上检查了几个Ruby教程,他们似乎都在使用数组.那么如何在Ruby中实现以下数据结构呢?

  • 堆栈
  • 队列
  • 链接列表
  • 地图

ruby

53
推荐指数
4
解决办法
4万
查看次数

检查Ruby中是否存在URL

我如何使用Ruby检查URL是否存在?

例如,对于URL

https://google.com
Run Code Online (Sandbox Code Playgroud)

结果应该是真实的,但对于URL

https://no.such.domain
Run Code Online (Sandbox Code Playgroud)

要么

https://stackoverflow.com/no/such/path
Run Code Online (Sandbox Code Playgroud)

结果应该是假的

ruby

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

登录Sinatra?

我无法弄清楚如何使用Sinatra记录消息.我不打算记录请求,而是在我的应用程序中的某些点上自定义消息.例如,在获取我想要记录的URL时"Fetching #{url}".

这是我想要的:

  • 指定日志级别的能力(例如:logger.info("Fetching #{url}"))
  • 在开发和测试环境中,消息将写入控制台.
  • 在生产中,只写出与当前日志级别匹配的消息.

我猜这可以很容易地在做config.ru,但我不是100%肯定,我想启用该设置,如果我必须手动创建一个Logger对象本人(以及此外,该级Logger使用方法:Logger,Rack::Logger,或Rack::CommonLogger) .

(我知道在StackOverflow上有类似的问题,但似乎都没有直接回答我的问题.如果你能指出我现有的问题,我会把这个问题标记为副本).

ruby logging rack sinatra

53
推荐指数
3
解决办法
5万
查看次数

使用Ruby CSV更改导出的CSV中的字段分隔符/分隔符

是否可以将默认字段分隔符从逗号更改为其他某个字符,例如'|'用于导出?

ruby csv

52
推荐指数
3
解决办法
5万
查看次数

ruby散列中的条件键/值

是否有一个很好的(一行)方式在ruby中编写一个哈希值,只有条件满足时才有一些条目?我想到了

{:a => 'a', :b => ('b' if condition)}
Run Code Online (Sandbox Code Playgroud)

但是,:b == nil如果条件没有得到满足,那就离开了.我意识到这可以在两行左右轻松完成,但在一行中会更好(例如将哈希传递给函数时).

我错过了(还)另一个红宝石的惊人功能吗?;)

ruby

52
推荐指数
6
解决办法
3万
查看次数

使用ruby-debugger抛出的Rails'找不到符号:_ruby_current_thread(LoadError)'

我有标准的ruby-head和Rails 3.1rc4.我按照http://dirk.net/2010/04/17/ruby-debug-with-ruby-19x-and-rails-3-on-rvm/中的说明安装了ruby-debug.

但是当我运行rails s --debugger它会抛出这个奇怪的错误

/Users/schovi/.rvm/gems/ruby-head/gems/activesupport-3.1.0.rc4/lib/active_support/dependencies.rb:237:in `require': dlopen(/Users/schovi/.rvm/gems/ruby-head/gems/linecache19-0.5.12/lib/trace_nums19.bundle, 9): Symbol not found: _ruby_current_thread (LoadError)
  Referenced from: /Users/schovi/.rvm/gems/ruby-head/gems/linecache19-0.5.12/lib/trace_nums19.bundle
  Expected in: flat namespace
in /Users/schovi/.rvm/gems/ruby-head/gems/linecache19-0.5.12/lib/trace_nums19.bundle - /Users/schovi/.rvm/gems/ruby-head/gems/linecache19-0.5.12/lib/trace_nums19.bundle
from /Users/schovi/.rvm/gems/ruby-head/gems/activesupport-3.1.0.rc4/lib/active_support/dependencies.rb:237:in `block in require'
from /Users/schovi/.rvm/gems/ruby-head/gems/activesupport-3.1.0.rc4/lib/active_support/dependencies.rb:223:in `block in load_dependency'
Run Code Online (Sandbox Code Playgroud)

任何的想法?谢谢,大卫

ruby ruby-on-rails ruby-debug

52
推荐指数
4
解决办法
1万
查看次数

项目目录的相对路径

在我的Ruby项目中,我使用了一些东西,例如在几个远程盒子上移动和编辑文件,我真的需要像我的根项目目录的相对路径.我有许多处理文件夹,在许多方法中使用.

现在我有硬编码的路径,但这让我不高兴.

ruby

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

写入rails控制台

当我想尝试或调试smthing我跑,rails console并在那里做一些东西.我可以通过引发异常来从代码中打印一些文本或变量raise "blablabla". 问题:我如何只是简单地写入rails控制台而不会异常引发(并且明显破坏代码执行)logger.info "blah"

ruby debugging development-environment ruby-on-rails rails-console

52
推荐指数
4
解决办法
13万
查看次数

Ruby总是围捕

我觉得自己像个疯子.我想将所有分数四舍五入到最接近的整数.

例如,67/30 = 2.233333333334.我想将其舍入到3.如果结果不是一个整数,我永远不想向下舍入,只有向上.

这就是我正在尝试的:

puts 67/30.to_f.ceil
Run Code Online (Sandbox Code Playgroud)

以下是我正在寻找的例子:

  • 67/30 = 3
  • 50/100 = 1
  • 2/2 = 1

有任何想法吗?非常感谢!

ruby

52
推荐指数
1
解决办法
4万
查看次数

在Rails中,find_each和where之间有什么区别?

在Rails中,find_eachwhere用于从ActiveRecord支持的数据库中检索数据.

您可以将查询条件传递给where,例如:

c = Category.where(:name => 'Ruby', :position => 1)
Run Code Online (Sandbox Code Playgroud)

您可以将批量大小传递给find_each,例如:

Hedgehog.find_each(batch_size: 50).map{ |p| p.to_json }
Run Code Online (Sandbox Code Playgroud)

但是以下两个代码有什么区别?

# code 1
Person.where("age > 21").find_each(batch_size: 50) do |person|
  # processing
end

# code 2
Person.where("age > 21").each do |person|
  # processing
end
Run Code Online (Sandbox Code Playgroud)

代码1批次每次检索50个元组,代码2一次检索所有元组吗?欢迎更多细节解释.

我的意见是:

  1. wherefind_each可用于批量检索,但是用户可使用时限定批量大小find_each.
  2. find_each 不支持传递查询条件.

如果我的理解是错误的,请纠正我.

ruby activerecord ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

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