标签: ruby

差异 - 除非/如果

任何人都可以解释我的区别if,并unless和何时使用它?

ruby

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

如何删除字符串中的重复空格?

我有一个字符串:

"foo(2个空格)bar(3个空格)baaar(6个空格)fooo"

如何删除其中的重复空格,以便在任意两个单词之间不要超过一个空格?

ruby

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

Ruby块的最佳解释?

您可以分享的Ruby块的最佳解释是什么?

使用和编写代码都可以阻塞?

ruby block

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

在rake任务中提出问题

我有一个从另一个rake任务调用的rake任务.

在这个rake任务中,我需要向用户询问一些文本输入,然后根据答案继续,或者停止继续(包括调用rake任务).

我怎样才能做到这一点?

ruby rake

38
推荐指数
4
解决办法
8099
查看次数

Ruby中数组和哈希的性能

我有一个程序可以存储一个类的许多实例,比方说高达10.000或更多.类实例有不时需要的几个属性,但最重要的属性是ID.

class Document
  attr_accessor :id
  def ==(document)
    document.id == self.id
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,存储数千个这些对象的最快方法是什么?

我曾经将它们全部放入一个文档数组中:

documents = Array.new
documents << Document.new
# etc
Run Code Online (Sandbox Code Playgroud)

现在另一种方法是将它们存储在Hash中:

documents = Hash.new
doc = Document.new
documents[doc.id] = doc
# etc
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我主要需要找出文档是否存在.哈希的has_key?函数是否明显快于数组的线性搜索和Document对象的比较?都在O(n)内has_key?甚至是O(1).我会看到区别吗?

此外,有时我需要在文档已经存在时添加它.当我使用数组时,我必须先检查include?,当我使用哈希时,我只是has_key?再次使用.与上述问题相同.

你的想法是什么?什么是存储大量数据的最快方法,90%的时间我只需要知道ID是否存在(而不是对象本身!)

ruby arrays hash performance

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

禁用RVM还是使用没有RVM安装的Ruby?

对于rails应用程序,我安装了Ruby 1.8.7和Rails 2.3.11.它工作正常.之后我安装了RVM和REE.因此,在运行ruby脚本/服务器时,它使用REE.但现在我想使用没有RVM安装的旧版Ruby 1.8.7.

任何方案!

ruby ruby-on-rails rvm

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

列出关联模型的名称

class Article < ActiveRecord::Base
  has_many :comments
  belongs_to :category
end
Run Code Online (Sandbox Code Playgroud)

是否有文章的类方法,我可以检索关联列表?我知道通过查看模型的代码,文章与评论和类别相关联.但有没有一种方法可以通过编程方式获得这些关联?

ruby ruby-on-rails ruby-on-rails-3

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

使用RVM时如何安装Ruby gem?

我设置了RVM并用它来安装Ruby和其他一些库.当我正在浏览Rails等其他技术的各种教程和设置时,我开始对通过RVM做什么以及我应该按照教程建议做什么感到困惑.

一个例子是RubyGems教程:http: //rubygems.org/pages/download

我应该下载他们正在谈论的tar文件吗?似乎不必要,因为这是我认为RVM的用途.我甚至需要RubyGems吗?真的是什么?

另外,我如何实际获得Rails?是否有精确的RVM命令来实际下载和安装Rails?

ruby rubygems ruby-on-rails rvm ruby-on-rails-3

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

如何在Time.now中添加两周?

如何在Ruby中添加两周到当前的Time.now?我有一个使用DataMapper的小型Sinatra项目,在保存之前,我有一个填充了当前时间PLUS两周的字段,但是根本不能正常工作.任何帮助是极大的赞赏!我收到以下错误:

NoMethodError at /
undefined method `weeks' for 2:Fixnum
Run Code Online (Sandbox Code Playgroud)

以下是模型的代码:

class Job
  include DataMapper::Resource

  property :id,           Serial
  property :position,     String
  property :location,     String
  property :email,        String
  property :phone,        String
  property :description,  Text
  property :expires_on,   Date
  property :status,       Boolean
  property :created_on,   DateTime
  property :updated_at,   DateTime

  before :save do
    t = Time.now
    self.expires_on = t + 2.week
    self.status = '0'
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby time

38
推荐指数
6
解决办法
7万
查看次数

Ruby:initialize()vs类体?

在Ruby中,将代码放在initialize()方法中而不是直接放在类体中有什么区别?两者似乎都是在打电话时执行的MyClass.new.

显然,initialize()可以接受参数,但这是唯一的区别吗?

class MyClass
  puts 'Hello'

  def initialize(params)
    puts 'World'
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby

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

标签 统计

ruby ×10

ruby-on-rails ×3

ruby-on-rails-3 ×2

rvm ×2

arrays ×1

block ×1

hash ×1

performance ×1

rake ×1

rubygems ×1

time ×1