小编Rah*_*ali的帖子

如何在Ruby中获取父级的类名

让我们假设我有一个类AB那里B继承A.如何在中打印父类名称B

class A
end

class B < A
end
Run Code Online (Sandbox Code Playgroud)

我试过的一些事情

>> B.new.class #=> B   #which is correct
>> B.new.parent  #=> Undefined method `parent`
>> B.parent   #=> Object
>> B.parent.class #=> Class
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

ruby

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

使用RVM安装Ruby 2.0.0

我尝试过安装Ruby 2.0.0使用RVM:

  rvm install 2.0.0
Run Code Online (Sandbox Code Playgroud)

安装完成后.我做到了rvm list.它如下所示:

rvm rubies

   jruby-1.6.5.1 [ i386 ]
   /home/username/.rvm/scripts/list: line 294: /home/username/.rvm/rubies/rbx-2.0.0/config: No such file or directory
rbx-2.0.0 [  ]
=* ree-1.8.7-2011.12 [ i686 ]
   ruby-1.9.3-p0 [ i686 ]

# => - current
# =* - current && default
#  * - default
Run Code Online (Sandbox Code Playgroud)

为什么安装Rubinius 2.0-rc1?有没有人面对这个问题?任何帮助?

谢谢 :)

ruby

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

摧毁轨道中所有延迟的工作

我正在使用collectiveidea for rails 2.3.8.我正在创建一系列延迟作业来执行某些任务,经过一段时间我想要销毁所有正在运行的延迟作业.如果有人知道这样做的方法,请帮助我.

ruby ruby-on-rails delayed-job

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

设备上没有剩余空间

我做了git pull --rebase,我得到了以下错误:

 error: file write error (No space left on device)
 fatal: unable to write sha1 file 
 fatal: unpack-objects failed
Run Code Online (Sandbox Code Playgroud)

我的设备上有很多空间.不知道为什么会出现这个错误.我第一次遇到这个错误.有没有人面对这个问题?

谢谢.

git git-pull git-rebase

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

Ruby中可用的网页抓取宝石/工具

我正在尝试在我正在处理的Ruby脚本中抓取网页.该项目的目的是显示哪些ETF和股票共同基金与价值投资理念最相容.

我要抓的页面的一些例子是:

http://finance.yahoo.com/q/pr?s=SPY+Profile
http://finance.yahoo.com/q/hl?s=SPY+Holdings
http://www.marketwatch.com/tools/mutual-fund/list/V
Run Code Online (Sandbox Code Playgroud)

你为Ruby推荐什么网络抓取工具?为什么?请记住,那里有成千上万的股票基金,所以我使用的任何工具都必须相当快.

我是Ruby的新手,但我有使用lxml在Python中抓取网页的经验(https://github.com/jhsu802701/dopplervalueinvesting/blob/master/screen.py).一旦下载了5000多只股票的页面,lxml就可以在几分钟内完成所有这些操作.(我记得尝试过BeautifulSoup但拒绝它,因为它太慢了.)

ruby lxml html-parsing scrape

10
推荐指数
1
解决办法
9183
查看次数

在同一个宝石集中切换不同版本的rails

我在同一个宝石套装中安装了两个不同版本的导轨.当我做gem list rails时,它将显示如下:

      **rails (3.0.11, 2.3.8)** // This means I have two rails
Run Code Online (Sandbox Code Playgroud)

当我创建新的rails应用程序时,它将采用最新的一个,这意味着应该使用rails new app_name创建应用程序而不使用rails app_name.

但我想使用rails 2.3.8而不是3.0.11.我知道使用RVM有助于在不同版本的rails之间切换,但它们安装在不同的gem集中.是否有可能在同一宝石套装中的不同导轨版本之间切换?

谢谢.

ruby gem rubygems ruby-on-rails

5
推荐指数
1
解决办法
1663
查看次数

ruby如何跟踪变量

我对Ruby跟踪变量的方式感到困惑.例如:

情况1:

    if true
       a
    end
Run Code Online (Sandbox Code Playgroud)

会给你一个错误的说法undefined local variable or method a.

案例2:

    if false
      a
    end
    a
Run Code Online (Sandbox Code Playgroud)

会给你第二个错误a,而不是第一个a.

案例3:

    if false
      a=2
    end
    a  #=> nil
    defined? a  #=> 'local-variable'
Run Code Online (Sandbox Code Playgroud)

如果比较案例2和案例3,则在案例2中它首先忽略错误a.我认为它因为ruby的执行路径而没有afalse条件而到达变量.当我在案例3中进行赋值时,它也是一样的.它给了我变量a定义但nil有价值.有人可以解释它的工作方式吗?

ruby

5
推荐指数
1
解决办法
162
查看次数

比较rails中两个对象数组的最佳方法

我有两个对象数组,例如:

a1 = [obj1, obj2 , obj3]
a2 = [obj4, obj5, obj6]
Run Code Online (Sandbox Code Playgroud)

每个数组都有不同的同类对象.我想检查它们obj1.att == obj4.att在一次迭代中是否具有相同的属性值().

a1.each将在单个数组上进行迭代.我不想使用forwhile循环.我想要一个rails方式来做到这一点.

ruby comparison

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

使用正则表达式检查最少8位的字符串

我有正则表达式如下:

     /^(\d|-|\(|\)|\+|\s){12,}$/
Run Code Online (Sandbox Code Playgroud)

这将允许数字,(,),空格.但我想确保字符串包含至少8位数字.一些允许的字符串如下:

      (1323  ++24)233
      24243434 43
      ++++43435++4554345  434
Run Code Online (Sandbox Code Playgroud)

它不应该允许字符串:

     ((((((1213)))
     ++++232+++
Run Code Online (Sandbox Code Playgroud)

ruby regex

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

在轨道上的ruby中的布尔值

我在我的声明中声明了一些简单的布尔字段 model/user.rb

class User < ActiveRecord::Base
attr_accessible :name, :has_car

def  init(age)
 if age > 18
   has_car = true
 else
   has_car = false
 end
   has_car
end
...
Run Code Online (Sandbox Code Playgroud)

然后在我的视图(.html.haml文件)中,我试图打印该字段:

...
%li
 - if this_user.has_car
   = "This person has a car"
 - else
   = "This person does NOT have a car"
...
Run Code Online (Sandbox Code Playgroud)

出于某种原因,this_user.has_car始终评估为false.谁能告诉我这里做错了什么?(我是Ruby/Rails的新手)

谢谢

haml boolean ruby-on-rails

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

属性上的JQuery show()和hide()具有值

我有两个div元素如下:

  <div class="sc-info" tags="abc mno">
     ....
  </div>

  <div class="sc-info" tags="abc xyz">
     ....
  </div>
Run Code Online (Sandbox Code Playgroud)

我想根据tags中存在的值执行hide()和show().如下所示

  $('div.sc-info[tags with "abc"]').hide()   // This should hide both divs

  $('div.sc-info[tags with "xyz"]').show()   //This should show only second one
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

正则表达式要求最高14位数

上次我被要求检查字符串至少8位数.我得到了以下正则表达式:

    /^(?=(.*\d){8,})[\d\(\)\s+-]{8,}$/
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看问题:使用正则表达式检查最少8位的字符串

现在我想限制字符串在同一个正则表达式中接受最多14位数.我试过这个:

   /^(?=(.*\d){8,14})[\d\(\)\s+-]{8,}$/
Run Code Online (Sandbox Code Playgroud)

没运气.请有人帮我解决这个问题.

UPDATE

在获得2票之后,我认为最好自己编写.我使用以前的正则表达式构造了正则表达式.以下正则表达式适用于我:

    /^(?=(.*\d){8})(?!(.*\d){15})[\d\(\)\s+-]{8,}$/
Run Code Online (Sandbox Code Playgroud)

ruby regex

-1
推荐指数
1
解决办法
2162
查看次数