标签: ruby

在Ruby中打开默认浏览器

在Python中,您可以这样做:

import webbrowser
webbrowser.open_new("http://example.com/")
Run Code Online (Sandbox Code Playgroud)

它将在默认浏览器中打开传入的URL

有红宝石等价物吗?

ruby browser

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

为什么Ruby文档中的方法前面有一个井号?

这一直困扰着我一段时间.当我看到任何以文本打印的Ruby方法时,它通常显示为:

Class#method
Run Code Online (Sandbox Code Playgroud)

要么

#method
Run Code Online (Sandbox Code Playgroud)

现在,我会用:

Class.method
Run Code Online (Sandbox Code Playgroud)

为什么所有Ruby方法都以井号开头?有什么理由吗?只是好奇.

ruby documentation

56
推荐指数
6
解决办法
1万
查看次数

有没有更短的方法来在ruby中的同一目录中要求一个文件?

是否有更短的方法来要求位于同一目录中的文件(正在执行的脚本)?

require File.expand_path(File.dirname(__FILE__) + '/some_other_script')
Run Code Online (Sandbox Code Playgroud)

我读了这个require "my_script"并且require "./my_script"实际上会加载脚本两次(ruby不会认识到它实际上是同一个脚本),这File.expand_path就是推荐的原因:如果每次需要脚本时都使用它,那么它只会被加载一旦.

对我来说,像Ruby这样的简洁语言似乎没有更短的解决方案,这似乎很奇怪.例如,python只是这个:

import .some_other_module_in_the_same_directory
Run Code Online (Sandbox Code Playgroud)

我想我可以修补猴子require......但这只是邪恶的!;-)

ruby path require

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

如何在Rails外的ruby脚本中使用ActiveRecord?

我有一个小的ruby脚本,我想使用ActiveRecord轻松访问数据库模型.最好的方法是什么?

ruby scripting activerecord ruby-on-rails

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

如何使用Nokogiri访问属性

我有一个访问某些属性值的简单任务.下面是一个简单的脚本,用于Nokogiri::XML::Builder创建一个简单的xml doc.

require 'nokogiri'

builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
  xml.Placement(:messageId => "392847-039820-938777", :system => "MOD", :version => "2.0") {
    xml.objects {
        xml.object(:myattribute => "99", :anotherattrib => "333")
        xml.nextobject_ '9387toot'
        xml.Entertainment "Last Man Standing"
    }
  }
end

puts builder.to_xml
puts builder.root.attributes["messageId"]
Run Code Online (Sandbox Code Playgroud)

结果如下:

<?xml version="1.0" encoding="UTF-8"?>
<Placement messageId="392847-039820-938777" version="2.0" system="MOD">
  <objects>
    <object anotherattrib="333" myattribute="99"/>
    <nextobject>9387toot</nextobject>
    <Entertainment>Last Man Standing</Entertainment>
  </objects>
</Placement>
C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/document.rb:178:in `add_child': Document already has a root node (RuntimeError)
    from C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/node.rb:455:in `parent='
    from C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/builder.rb:358:in `insert'
    from C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/builder.rb:350:in `method_missing' …
Run Code Online (Sandbox Code Playgroud)

ruby builder nokogiri

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

"if"语句与"then"结尾有什么区别?

if当我们thenif语句的末尾添加一个时,这两个Ruby 语句之间的区别是什么?

if(val == "hi") then
  something.meth("hello")
else
  something.meth("right")
end
Run Code Online (Sandbox Code Playgroud)

if(val == "hi")
  something.meth("hello")
else
  something.meth("right")
end
Run Code Online (Sandbox Code Playgroud)

ruby

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

Rails 3 - 没有这样的文件加载 - openssl

运行Rails服务器时,我收到以下错误:没有要加载的文件 - openssl

我尝试在网上找到的解决方案.我去〜/ .rvm/src/ruby​​-1.9.2-head/ext/openssl.我键入:ruby extconf.rb,但我得到以下内容:

=== OpenSSL for Ruby configurator ===
=== Checking for system dependent stuff... ===
checking for t_open() in -lnsl... no
checking for socket() in -lsocket... no
checking for assert.h... yes
=== Checking for required stuff... ===
checking for openssl/ssl.h... no
=== Checking for required stuff failed. ===
Makefile wasn't created. Fix the errors above.
Run Code Online (Sandbox Code Playgroud)

我不能使用make也不能make install.

ruby openssl ruby-on-rails rvm ruby-on-rails-3

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

如何计算红宝石中某一天的星期几?

如何计算红宝石中某一天的星期几?例如,2010年10月28日是=星期四

ruby date

56
推荐指数
8
解决办法
6万
查看次数

在使用多个单词命名宝石时,是否应该使用破折号或下划线?

当宝石名称有多个单词时,我对宝石命名约定是什么感到困惑.

  • thinking-sphinx是gem的名称,但是这个gem的基础*.rb文件是lib/thinking_sphinx.rb(下划线)

  • acts-as-taggable-on是gem的名称,base*.rb文件名为lib/acts-as-taggable-on.rb(连字符)

  • factory_girl在gem名称和base*.rb文件的名称中使用下划线

如果使用下划线或连字符,这有关系吗?这里是否有任何新的共识?

ruby naming-conventions

56
推荐指数
2
解决办法
9920
查看次数

Ruby on Rails 3:"类的超类不匹配......"

平台:Mac OSX 10.6

在我的终端中,我使用"rails c"启动Ruby控制台

按照Ruby on Rails 3教程构建一个类:

class Word < String 
  def palindrome? #check if a string is a palindrome
    self == self.reverse
  end
end
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

TypeError: superclass mismatch for class Word
    from (irb):33
    from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in `start'
    from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands/console.rb:8:in `start'
    from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands.rb:23:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)

教程显示它没有问题,我知道代码很好; 我搜索了其他相关问题,但他们都涉及从Ruby 2迁移到3或erb vs eruby.

ruby ruby-on-rails ruby-on-rails-3

56
推荐指数
5
解决办法
6万
查看次数