我正在尝试构建一些单元测试来测试我的Rails助手,但我永远不会记得如何访问它们.烦人.建议?
人们使用Rails应用程序的消息队列是什么,决定选择它的驱动力是什么.最新的Twitter宣传其内部队列Starling是否会影响任何现有的设计决策.
我正在开发一个需要一个消息队列来处理一些后台任务的应用程序,我没有做太多这样的事情,我过去看过的大部分内容都是关于Starling和Workling,说实话应用程序不是很大,这个解决方案可能就足够了,但我很乐意获得集成最佳解决方案的经验,因为我确信我会在某个时候将其集成到更大的应用程序中.
你会为Rails应用建议什么消息队列?
编辑:感谢您的建议,我将在本周末看看他们中的一些.
再次编辑:我已经环顾四周,有点不知所措.然而,我将把RabbitMQ与Workling集成到我正在构建的应用程序中,然后如果我需要一些关于快速队列的知识,那么我将拥有它并知道它是否符合我的需求.
编辑:发现越来越多的DJ适合我,如果我在网站上"长大",我会说Resque是我要去的地方.
编辑:(2014年12月)所以自从我问这个问题已经有很长一段时间了,但我看到它仍然得到一些观点或一些投票,所以当我选择背景工作者时,我想我会更新它的方法.
在我看来,目前在Ruby中运行后台作业的最佳方法是使用Sidekiq.很多人真的称赞Sidekiq是因为它是线程化的工作者,而不是每个工人的处理能够使用比Reski更少的内存,而Resque就是我在Sidekiq之前使用的.这很好,但对我来说,这不是杀手级的功能.通过使用Sidetiq与Sidekiq,作业调度是如此微不足道,我切换,从来没有把目光从它背面,我已经使用并取得了Sidekiq一件轻而易举的使用作业迄今为止最容易调度.
我即将开始一项新工作,我将在Windows机器上使用Ruby和Rails进行开发.我已经多年没有使用过Windows,而Textmate,Git和Bash等都是使用Mac的工作流程中不可或缺的一部分.
那么,是否有人对使用的最佳工具或工作策略有任何建议或建议?还是要避免陷阱?
当然,我特别感兴趣的是最好的文本编辑器.(我正在认真考虑借此机会学习Vim或Emacs,或者无论Windows端口被调用,但欢迎任何其他想法.)
此外,任何有用的插件,工具或程序的想法将不胜感激.
如果你认为我已经完全失去理智,那么随时告诉我;-)
干杯!
我无法将rails 3.1 beta项目部署到heroku.问题发生在数据库迁移步骤中.我跑的时候:
heroku rake db:migrate
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
> rake aborted! > Could not find a JavaScript runtime. See > https://github.com/sstephenson/execjs > for a list of available runtimes. > /app/Rakefile:5 > (See full trace by running task with --trace) > (in /app)
但我可以在本地成功运行应用程序,并且我确实安装了nodejs.知道为什么吗?
在这里我的宝石列表:
abstract (1.0.0)
actionmailer (3.1.0.beta1)
actionpack (3.1.0.beta1, 3.0.7)
activemodel (3.1.0.beta1, 3.0.7)
activerecord (3.1.0.beta1)
activeresource (3.1.0.beta1)
activesupport (3.1.0.beta1, 3.0.7)
ansi (1.2.5)
arel (2.1.0)
bcrypt-ruby (2.1.4)
builder (3.0.0, 2.1.2)
bundler (1.0.13)
coffee-script (2.2.0)
coffee-script-source (1.1.0)
configuration (1.2.0)
daemon_controller (0.2.6)
erubis (2.7.0, 2.6.6)
execjs (1.0.0, 0.3.3)
fastthread (1.0.7) …Run Code Online (Sandbox Code Playgroud) 我希望能够解析任何带有ruby的url来获取域的主要部分而不是www(只是XXXX.com)
简单的问题,但我找不到一个好的或明确的答案.将Ruby Date和Time对象(对象,而不是字符串)组合到单个DateTime对象中的最佳和最有效的方法是什么?
这可能是一个简单的问题,但我似乎正在拔头发找到一个优雅的解决方案.我有两个ActiveRecord模型类,它们之间有一个has_one和belongs_to关联:
class Item < ActiveRecord::Base
has_one :purchase
end
class Purchase < ActiveRecord::Base
belongs_to :item
end
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种优雅的方法来查找所有Item对象,这些对象没有与它们关联的购买对象,理想情况下不需要is_purchased在Item上使用布尔值或类似属性.
现在我有:
purchases = Purchase.all
Item.where('id not in (?)', purchases.map(&:item_id))
Run Code Online (Sandbox Code Playgroud)
哪个有效,但对我来说似乎效率低下,因为它正在执行两个查询(并且购买可能是一个巨大的记录集).
运行Rails 3.1.0
我有一个@bunch作为数组返回的模型
每个模型都有属性 - commentable_id和commentable_type(多态关联)
我想通过可评论的方式对模型进行分组,但如果我这样做的话
@bunch.group_by(&:commentable)
Run Code Online (Sandbox Code Playgroud)
它还从数据库中获取可评论,这是不需要的.
我可以做@bunch.group_by(&:commentable_id)但这会引起一些混淆,因为可以有几种类型的可评论模型
有没有办法去group_by commentable_idAND commentable_type?
只是想知道是否有一个Ruby习惯用法从索引中提取子字符串直到字符串结尾.我知道str[index..-1]它在一个范围内的对象传递给工作String的[]方法,但它是一个有点笨拙.例如,在python中,您可以编写str[index:]哪些内容可以隐式地获取字符串的其余部分.
例:
s = "hello world"
s[6..-1] # <-- "world"
Run Code Online (Sandbox Code Playgroud)
还有什么比这更好的s[6..-1]吗?
在rspec doc中声明我应该使用double方法来创建测试double.但我可以看到,即使我不使用它也能完美运行double.不使用有什么问题double吗?另外,如果我不使用double如何MyClass得到stub和其他rspec方法?在rspec中运行时,它们是否可用于所有对象?
require 'spec_helper'
class MyClass
def self.run
new.execute
end
def execute
'foo'
end
end
describe MyClass do
it 'should stub instance method' do
obj = MyClass.new
obj.stub(:execute).and_return('bar')
obj.execute.should == 'bar'
end
it 'should stub class method' do
MyClass.stub(:run).and_return('baz')
MyClass.run.should == 'baz'
end
end
Run Code Online (Sandbox Code Playgroud)