标签: ruby

安装gem或更新RubyGems失败,出现权限错误

尝试安装gem(gem install mygem)或更新RubyGems(gem update --system)失败,出现此错误:

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何解决这个问题?

ruby macos rubygems

546
推荐指数
19
解决办法
46万
查看次数

Ruby函数删除所有空格?

删除所有空格的Ruby函数是什么?有点像php的trim()

ruby string

543
推荐指数
18
解决办法
51万
查看次数

equ?,eql?,===和==之间有什么区别?

我试图理解这四种方法之间的区别.我知道默认情况下==调用的方法equal?在两个操作数引用完全相同的对象时返回true.

===默认情况下也调用==哪个调用equal?...好吧,所以如果所有这三个方法都没有被覆盖,那么我猜 ===,==并且equal?做同样的事情?

现在来了eql?.这是做什么的(默认情况下)?它是否调用操作数的hash/id?

为什么Ruby有这么多的平等标志?他们应该在语义上有所不同吗?

ruby comparison equality operators

537
推荐指数
6
解决办法
20万
查看次数

如何从Hash中删除一个键并获取Ruby/Rails中的剩余哈希?

要向Hash添加新对,我会:

{:a => 1, :b => 2}.merge!({:c => 3})   #=> {:a => 1, :b => 2, :c => 3}
Run Code Online (Sandbox Code Playgroud)

是否有类似的方法从哈希删除密钥?

这有效:

{:a => 1, :b => 2}.reject! { |k| k == :a }   #=> {:b => 2}
Run Code Online (Sandbox Code Playgroud)

但我希望有类似的东西:

{:a => 1, :b => 2}.delete!(:a)   #=> {:b => 2}
Run Code Online (Sandbox Code Playgroud)

重要的是返回值将是剩余的哈希值,因此我可以执行以下操作:

foo(my_hash.reject! { |k| k == my_key })
Run Code Online (Sandbox Code Playgroud)

在一条线上.

ruby ruby-on-rails hashmap ruby-on-rails-3 ruby-hash

531
推荐指数
12
解决办法
38万
查看次数

在Ruby中开始,拯救和确保?

我最近开始用Ruby编程,我正在研究异常处理.

我想知道在C#中是否ensure相当于Ruby finally?我应该:

file = File.open("myFile.txt", "w")

begin
  file << "#{content} \n"
rescue
  #handle the error here
ensure
  file.close unless file.nil?
end
Run Code Online (Sandbox Code Playgroud)

或者我应该这样做?

#store the file
file = File.open("myFile.txt", "w")

begin
  file << "#{content} \n"
  file.close
rescue
  #handle the error here
ensure
  file.close unless file.nil?
end
Run Code Online (Sandbox Code Playgroud)

是否ensure被调用无论即使一个异常没有什么引发,?

ruby error-handling exception-handling ruby-on-rails exception

528
推荐指数
7
解决办法
39万
查看次数

为什么Ruby方法中使用感叹号?

在Ruby中,有些方法有一个问号(?),它会询问一个问题include?,询问是否包含有问题的对象,然后返回true/false.

但为什么有些方法会有感叹号(!)而其他方法却没有?

这是什么意思?

ruby methods naming-conventions immutability

520
推荐指数
8
解决办法
13万
查看次数

为什么要使用Ruby的attr_accessor,attr_reader和attr_writer?

Ruby有这种方便易用的方法来使用像这样的键来共享实例变量

attr_accessor :var
attr_reader :var
attr_writer :var
Run Code Online (Sandbox Code Playgroud)

为什么我会选择attr_reader或者attr_writer我可以简单地使用attr_accessor?有没有像表演(我怀疑)?我想有一个原因,否则他们就不会有这样的钥匙.

ruby

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

在Rails中撤消脚手架

有没有办法在Rails中"撤消"脚手架命令的效果?

ruby ruby-on-rails scaffolding

486
推荐指数
7
解决办法
13万
查看次数

map(&:name)在Ruby中意味着什么?

我在RailsCast中找到了这段代码:

def tag_names
  @tag_names || tags.map(&:name).join(' ')
end
Run Code Online (Sandbox Code Playgroud)

什么是(&:name)map(&:name)意味着什么?

ruby syntax operators parameter-passing

483
推荐指数
11
解决办法
12万
查看次数

如何在Rails中重定向到404?

我想在Rails中"伪造"一个404页面.在PHP中,我只是发送带有错误代码的标头:

header("HTTP/1.0 404 Not Found");
Run Code Online (Sandbox Code Playgroud)

如何用Rails完成?

ruby ruby-on-rails http http-status-code-404

474
推荐指数
6
解决办法
22万
查看次数