小编And*_*imm的帖子

"私人"是否有充分理由按照Ruby的方式工作?

我花了一段时间才了解私有方法在Ruby中是如何工作的,这让我觉得非常尴尬.有谁知道私人方法是否有充分的理由按照它们的方式处理?这只是历史原因吗?还是实施原因?还是有很好的合理逻辑(即语义)?

例如:

class Person
  private
  attr_reader :weight
end

class Spy < Person
 private
  attr_accessor :code
 public
  def test
    code          #(1) OK: you can call a private method in self
    Spy.new.code  #(2) ERROR: cannot call a private method on any other object
    self.code     #(3) ERROR!!! cannot call a private method explicitly on 'self'
    code="xyz"    #(4) Ok, it runs, but it actually creates a local variable!!!
    self.code="z" #(5) OK! This is the only case where explicit 'self' is ok
    weight …
Run Code Online (Sandbox Code Playgroud)

ruby language-design private access-specifier

25
推荐指数
1
解决办法
4145
查看次数

RubyMine 2.0作为Rails IDE赢得99美元吗?

我最近看过很多关于RubyMine的博客,作为最好的Rails IDE.目前,我正在使用NetBeans IDE作为我的Ruby和Rails的东西,但我想知道这里是否有人会亲自推荐这个IDE,以及为什么我应该为它支付99美元.

ide ruby-on-rails rubymine

25
推荐指数
2
解决办法
8311
查看次数

"早期失败"的含义是什么意思,什么时候你想这样做?

"早期失败"的含义是什么意思,在什么情况下这种方法最有用,何时会避免这种做法?

fail-fast-fail-early

25
推荐指数
3
解决办法
5327
查看次数

logger.debug没有写入Rails中的日志文件

我试图在Rails中调试模型,所以我使用这段代码: logger.debug('asasd')

但是,我正在拖尾日志文件development.log,但我没有看到它添加到此文件.

  1. 我确信这个模块正在运行
  2. 我已经确认运行时错误正在记录到这个文件,当我拖尾时我会看到它们.

我如何让它工作?

ruby ruby-on-rails

24
推荐指数
1
解决办法
2万
查看次数

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

如何检查数组的值是否包含一个或多个值?

我想看一个数组里面是否有一个或多个值.例如,像这样:

[1,2,3,4,5,6].include?([4,1])  # => true
[4,1,6,2].include?([4,1])  # => true
[3,4,7].include?([4,1])  # => false
Run Code Online (Sandbox Code Playgroud)

当然,"包括?" 方法只能检查一个值.有没有检查多个值的方法?

ruby arrays

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

哪个更快:MRI Ruby或JRuby?

如果我使用Ruby on Rails,我应该安装MRI/YARV Ruby还是JRuby?哪个更快?

ruby performance ruby-on-rails jruby

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

Ruby:条件矩阵?多个条件的情况?

在红宝石中,我想知道是否有办法做到以下几点:

我基本上有一个包含四种可能结果的矩阵:

A is True, B is True
A is True, B is False
A is False, B is True
A is False, B is False
Run Code Online (Sandbox Code Playgroud)

我想以最干净的"红宝石方式"为此写一个测试.

我希望做类似的事情

case[A,B]
  when A && B then ...
  when A && !B then ...
  when !A && B then ...
  when !A && !B then ...
end
Run Code Online (Sandbox Code Playgroud)

......但这不起作用.那么,处理这种情况的最佳方法是什么?

ruby conditional matrix switch-statement

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

Ruby递归/克隆递归

我有一个哈希:

h = {'name' => 'sayuj', 
     'age' => 22, 
     'project' => {'project_name' => 'abc', 
                   'duration' => 'prq'}}
Run Code Online (Sandbox Code Playgroud)

我需要一个这个哈希的副本,更改不应该影响原始哈希.

当我尝试时,

d = h.dup # or d = h.clone
d['name'] = 'sayuj1'
d['project']['duration'] = 'xyz'

p d #=> {"name"=>"sayuj1", "project"=>{"duration"=>"xyz", "project_name"=>"abc"}, "age"=>22}
p h #=> {"name"=>"sayuj", "project"=>{"duration"=>"xyz", "project_name"=>"abc"}, "age"=>22}
Run Code Online (Sandbox Code Playgroud)

在这里,您可以看到project['duration']原始哈希中的更改是因为project是另一个哈希对象.

我想要散列dupedcloned递归.我怎样才能做到这一点?

ruby hash clone hash-of-hashes dup

23
推荐指数
1
解决办法
9428
查看次数

如何在Ruby中找到常量的定义?

使用pry,可以非常简单地找到定义方法的位置并查看source by edit-method命令.然而,课堂本身没有对应关系.当该类没有自己定义的方法时,很难找到源代码pry.

类是常量,所以它等同于询问在哪里找到定义特定Ruby常量的源.非常感谢你.

ruby constants

23
推荐指数
4
解决办法
5803
查看次数