我有一个字符串:
"foo(2个空格)bar(3个空格)baaar(6个空格)fooo"
如何删除其中的重复空格,以便在任意两个单词之间不要超过一个空格?
我有一个从另一个rake任务调用的rake任务.
在这个rake任务中,我需要向用户询问一些文本输入,然后根据答案继续,或者停止继续(包括调用rake任务).
我怎样才能做到这一点?
我有一个程序可以存储一个类的许多实例,比方说高达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是否存在(而不是对象本身!)
对于rails应用程序,我安装了Ruby 1.8.7和Rails 2.3.11.它工作正常.之后我安装了RVM和REE.因此,在运行ruby脚本/服务器时,它使用REE.但现在我想使用没有RVM安装的旧版Ruby 1.8.7.
任何方案!
class Article < ActiveRecord::Base
has_many :comments
belongs_to :category
end
Run Code Online (Sandbox Code Playgroud)
是否有文章的类方法,我可以检索关联列表?我知道通过查看模型的代码,文章与评论和类别相关联.但有没有一种方法可以通过编程方式获得这些关联?
我设置了RVM并用它来安装Ruby和其他一些库.当我正在浏览Rails等其他技术的各种教程和设置时,我开始对通过RVM做什么以及我应该按照教程建议做什么感到困惑.
一个例子是RubyGems教程:http: //rubygems.org/pages/download
我应该下载他们正在谈论的tar文件吗?似乎不必要,因为这是我认为RVM的用途.我甚至需要RubyGems吗?真的是什么?
另外,我如何实际获得Rails?是否有精确的RVM命令来实际下载和安装Rails?
如何在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中,将代码放在initialize()方法中而不是直接放在类体中有什么区别?两者似乎都是在打电话时执行的MyClass.new.
显然,initialize()可以接受参数,但这是唯一的区别吗?
class MyClass
puts 'Hello'
def initialize(params)
puts 'World'
end
end
Run Code Online (Sandbox Code Playgroud)