标签: ruby

在Ruby中将数组转换为散列的最佳方法是什么?

在Ruby中,给定一个以下形式之一的数组......

[apple, 1, banana, 2]
[[apple, 1], [banana, 2]]
Run Code Online (Sandbox Code Playgroud)

...以...的形式将其转换为哈希的最佳方法是什么?

{apple => 1, banana => 2}
Run Code Online (Sandbox Code Playgroud)

ruby arrays hashmap

120
推荐指数
7
解决办法
11万
查看次数

Ruby可选参数

如果我定义这样的Ruby函数:

def ldap_get ( base_dn, filter, scope=LDAP::LDAP_SCOPE_SUBTREE, attrs=nil )
Run Code Online (Sandbox Code Playgroud)

我怎么称它只提供前2个和最后一个args?为什么不是这样的

ldap_get( base_dn, filter, , X)
Run Code Online (Sandbox Code Playgroud)

可能的,或者如果可能,怎么办?

ruby optional-parameters

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

ruby send方法传递多个参数

尝试动态创建对象和调用方法

Object.const_get(class_name).new.send(method_name,parameters_array)
Run Code Online (Sandbox Code Playgroud)

这工作正常

Object.const_get(RandomClass).new.send(i_take_arguments,[10.0])
Run Code Online (Sandbox Code Playgroud)

但为2输入错误数量的参数1

Object.const_get(RandomClass).new.send(i_take_multiple_arguments,[25.0,26.0])
Run Code Online (Sandbox Code Playgroud)

定义的随机类是

class RandomClass
def i_am_method_one
    puts "I am method 1"
end
def i_take_arguments(a)
    puts "the argument passed is #{a}"
end
def i_take_multiple_arguments(b,c)
    puts "the arguments passed are #{b} and #{c}"
end
    end
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我如何动态地发送多个参数到ruby方法

ruby

120
推荐指数
2
解决办法
8万
查看次数

通过回形针从URL保存图像

请建议我使用Paperclip从URL保存图像的方法.

ruby upload ruby-on-rails paperclip

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

Ruby on Rails中的Gemfile和Gemfile.lock有什么区别

我是Ruby on Rails的初学者,我使用的是Rails 3.0.9.

GemfileGemfile.lockRails有什么区别?

ruby ruby-on-rails bundler gemfile gemfile.lock

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

如何在测试环境中运行Rails控制台并加载test_helper.rb?

背景:我遇到了Thoughtbot的"Factory Girl"宝石的一些问题,用于创建在单位和其他测试中使用的对象.我想去控制台并运行不同的Factory Girl电话来查看发生了什么.例如,我想进去那里做...

>> Factory(:user).inspect
Run Code Online (Sandbox Code Playgroud)

我知道你可以在不同的环境中运行控制台......

$ script/console RAILS_ENV = test

但是当我这样做时,工厂课程不可用.看起来好像test_helper.rb没有加载.

我尝试了各种require调用,包括一个绝对路径,test_helper.rb但它们与此类似地失败:

$ script/console RAILS_ENV=test
>> require '/Users/ethan/project/contactdb/test/test_helper.rb'
  Errno::ENOENT: No such file or directory - 
  /Users/ethan/project/contactdb/config/environments/RAILS_ENV=test.rb
Run Code Online (Sandbox Code Playgroud)

格儿.哎呀.

ruby testing ruby-on-rails shoulda

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

`:key =>"value"`和`key:"value"`哈希符号之间有什么区别吗?

:key => "value"(hashrocket)和key: "value"(Ruby 1.9)符号之间有什么区别吗?

如果没有,那么我想使用key: "value"符号.有没有宝石可以帮助我转换:x =>x:符号?

ruby syntax hash ruby-1.9 hashrocket

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

在JavaScript中Ruby的|| =(或等于)?

我喜欢Ruby的||=机制.如果变量不存在或是nil,则创建它并将其设置为等于:

amount # is nil
amount ||= 0 # is 0
amount ||= 5 # is 0
Run Code Online (Sandbox Code Playgroud)

我现在需要在JavaScript中做类似的事情.什么是惯例或正确的方法来做到这一点?我知道||=语法不正确.处理它的两种明显方法是:

window.myLib = window.myLib || {};

// or

if (!window.myLib)
  window.myLib = {};
Run Code Online (Sandbox Code Playgroud)

javascript ruby syntax

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

如何让Ruby/Homebrew/RVM在Yosemite上运行?

安装Yosemite后,我无法运行brew或ruby.

我在brew更新时收到此错误:

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0
Run Code Online (Sandbox Code Playgroud)

在irb上收到此错误:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:in mkdir': Permission denied - /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14 (Errno::EACCES) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:infu_mkdir'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:219:in block (2 levels) in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:inreverse_each'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:in block in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:ineach'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:in mkdir_p' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:210:inwrite_gem_make_out'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:132:in build_error' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:171:inrescue in build_extension'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:156:in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:198:inblock in build_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:in each' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:inbuild_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1436:in block in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/user_interaction.rb:45:inuse_ui'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1434:in build_extensions' from …
Run Code Online (Sandbox Code Playgroud)

ruby homebrew ruby-on-rails osx-yosemite

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

如何在Ubuntu 14.04上安装Ruby 2.1.4

我不知道如何在Ubuntu上安装最新的Ruby.

首先,我使用了默认的Ruby 1.9.3

sudo apt-get install ruby
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用安装2.0版本

sudo apt-get install ruby2.0
Run Code Online (Sandbox Code Playgroud)

我的Ruby版本仍然是"ruby 1.9.3p484(2013-11-22修订版43786)[x86_64-linux])"

我该怎么办?

ruby ubuntu ubuntu-14.04

118
推荐指数
5
解决办法
12万
查看次数