我在网上检查了几个Ruby教程,他们似乎都在使用数组.那么如何在Ruby中实现以下数据结构呢?
我如何使用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)
结果应该是假的
我无法弄清楚如何使用Sinatra记录消息.我不打算记录请求,而是在我的应用程序中的某些点上自定义消息.例如,在获取我想要记录的URL时"Fetching #{url}".
这是我想要的:
logger.info("Fetching #{url}"))我猜这可以很容易地在做config.ru,但我不是100%肯定,我想启用该设置,如果我必须手动创建一个Logger对象本人(以及此外,该级Logger使用方法:Logger,Rack::Logger,或Rack::CommonLogger) .
(我知道在StackOverflow上有类似的问题,但似乎都没有直接回答我的问题.如果你能指出我现有的问题,我会把这个问题标记为副本).
是否有一个很好的(一行)方式在ruby中编写一个哈希值,只有条件满足时才有一些条目?我想到了
{:a => 'a', :b => ('b' if condition)}
Run Code Online (Sandbox Code Playgroud)
但是,:b == nil如果条件没有得到满足,那就离开了.我意识到这可以在两行左右轻松完成,但在一行中会更好(例如将哈希传递给函数时).
我错过了(还)另一个红宝石的惊人功能吗?;)
我有标准的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项目中,我使用了一些东西,例如在几个远程盒子上移动和编辑文件,我真的需要像我的根项目目录的相对路径.我有许多处理文件夹,在许多方法中使用.
现在我有硬编码的路径,但这让我不高兴.
当我想尝试或调试smthing我跑,rails console并在那里做一些东西.我可以通过引发异常来从代码中打印一些文本或变量raise "blablabla".
问题:我如何只是简单地写入rails控制台而不会异常引发(并且明显破坏代码执行)logger.info "blah"?
ruby debugging development-environment ruby-on-rails rails-console
我觉得自己像个疯子.我想将所有分数四舍五入到最接近的整数.
例如,67/30 = 2.233333333334.我想将其舍入到3.如果结果不是一个整数,我永远不想向下舍入,只有向上.
这就是我正在尝试的:
puts 67/30.to_f.ceil
Run Code Online (Sandbox Code Playgroud)
以下是我正在寻找的例子:
有任何想法吗?非常感谢!
在Rails中,find_each和where用于从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一次检索所有元组吗?欢迎更多细节解释.
我的意见是:
where和find_each可用于批量检索,但是用户可使用时限定批量大小find_each.find_each 不支持传递查询条件.如果我的理解是错误的,请纠正我.
ruby activerecord ruby-on-rails ruby-on-rails-3 ruby-on-rails-4