标签: ruby

你如何在Ruby中使用全局变量或常量值?

我有一个看起来像这样的程序:

$offset = Point.new(100, 200);

def draw(point)
  pointNew = $offset + point;
  drawAbsolute(point)
end

draw(Point.new(3, 4));
Run Code Online (Sandbox Code Playgroud)

使用$offset看起来有点怪异.

在C中,如果我在任何函数之外定义某些东西,它会自动成为一个全局变量.为什么在Ruby中它必须$offset但不可能offset并且仍然是全局的?如果是offset,那么它是本地的吗?但是本地到哪里,因为它感觉非常全球化.

是否有更好的方法来编写上面的代码?$offset起初使用可能看起来有点难看.


更新:我可以将此偏移量放在class定义中,但如果两个或多个类需要使用此常量呢?在这种情况下,我还需要定义一个$offset吗?

ruby global-variables

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

将Nokogiri文档转换为Ruby Hash

有没有一种简单的方法将Nokogiri XML文档转换为Hash?

像Rails这样的东西Hash.from_xml.

ruby xml hash nokogiri libxml-ruby

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

如何使用Paperclip以编程方式设置文件上载

我有一个rake任务,使用faker gem为随机数据播种应用程序.但是,我们还要在此rake任务中上传图像(如徽标).

我们已经设置了Paperclip,但没有办法在rake任务中以编程方式上传它们.有任何想法吗?

ruby file-upload ruby-on-rails paperclip

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

何时在Ruby中使用Struct而不是Hash?

我没有太多的编程经验.但是,对我而言,Struct似乎与Hash有些相似.

  • Struct能做什么?
  • 结构可以做什么,哈希不能做什么?

在谷歌搜索之后,结构的概念在C中很重要,但我对C不太了解.

ruby hash struct

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

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

如何在Rails应用程序中使用httparty进行基本身份验证?

具有基本身份验证的命令行版本"httparty"工作简单而且很棒:

httparty -u username:password http://example.com/api/url
Run Code Online (Sandbox Code Playgroud)

但现在我正在寻找可以在Rails应用程序中将基本身份验证添加到HTTParty.get调用的方式.首先,出于测试目的,我想在Controller中硬编码登录凭据.只是为了确保它有效.但我找不到任何文档或示例如何传递这些.

没有凭据的HTTParty.get工作正常:

@blah = HTTParty.get("http://twitter.com/statuses/public_timeline.json")
Run Code Online (Sandbox Code Playgroud)

但我不明白我如何能够接受-u用户名:密码部分.

对我来说,下一个挑战(对于Ruby/Rails来说是一个新手)是从用户表单获取用户凭据并动态传递它,但现在最重要的是让硬编码版本工作.

ruby httparty ruby-on-rails-3

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

如何使用#{variable}在Ruby中使用浮点格式化字符串?

我想格式化一个包含浮点变量的字符串,包括固定数量的小数,我想用这种格式化语法来做:

amount = Math::PI
puts "Current amount: #{amount}"
Run Code Online (Sandbox Code Playgroud)

而且我想获得Current amount: 3.14.

我知道我可以做到

amount = Math::PI
puts "Current amount %.2f" % [amount]
Run Code Online (Sandbox Code Playgroud)

但我问是否有可能这样做#{}.

ruby

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

使用哈希时获取与[]的对比?

来自Ruby Koans about_hashes.rb:

为什么可能要使用#fetch而不是#[]在访问哈希键时?

ruby

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

"rmagick"宝石安装问题

我在尝试在centos上安装"rmagick"gem时遇到了问题.以下是我的输出.任何人都可以帮我确定我错过的包裹吗?我已经安装了所有提到的另一个堆栈溢出线程:RMagick安装错误

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

        /usr/local/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package …
Run Code Online (Sandbox Code Playgroud)

ruby gem

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

下降按Ruby中的Hash值排序

我的输入哈希: h = { "a" => 20, "b" => 30, "c" => 10 }

升序排序: h.sort {|a,b| a[1]<=>b[1]} #=> [["c", 10], ["a", 20], ["b", 30]]

但是我需要 [["b", 30], ["a", 20], ["c", 10]]

我们怎样才能让它以相反的方式运作,<=>意味着什么?

ruby sorting hash

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