标签: ruby

如何在Rails中测试助手?

我正在尝试构建一些单元测试来测试我的Rails助手,但我永远不会记得如何访问它们.烦人.建议?

ruby ruby-on-rails helpers

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

Ruby on Rails中的消息队列

人们使用Rails应用程序的消息队列是什么,决定选择它的驱动力是什么.最新的Twitter宣传其内部队列Starling是否会影响任何现有的设计决策.

我正在开发一个需要一个消息队列来处理一些后台任务的应用程序,我没有做太多这样的事情,我过去看过的大部分内容都是关于Starling和Workling,说实话应用程序不是很大,这个解决方案可能就足够了,但我很乐意获得集成最佳解决方案的经验,因为我确信我会在某个时候将其集成到更大的应用程序中.

你会为Rails应用建议什么消息队列?

编辑:感谢您的建议,我将在本周末看看他们中的一些.

再次编辑:我已经环顾四周,有点不知所措.然而,我将把RabbitMQ与Workling集成到我正在构建的应用程序中,然后如果我需要一些关于快速队列的知识,那么我将拥有它并知道它是否符合我的需求.

编辑:发现越来越多的DJ适合我,如果我在网站上"长大",我会说Resque是我要去的地方.

编辑:(2014年12月)所以自从我问这个问题已经有很长一段时间了,但我看到它仍然得到一些观点或一些投票,所以当我选择背景工作者时,我想我会更新它的方法.

在我看来,目前在Ruby中运行后台作业的最佳方法是使用Sidekiq.很多人真的称赞Sidekiq是因为它是线程化的工作者,而不是每个工人的处理能够使用比Reski更少的内存,而Resque就是我在Sidekiq之前使用的.这很好,但对我来说,这不是杀手级的功能.通过使用Sidetiq与Sidekiq,作业调度是如此微不足道,我切换,从来没有把目光从它背面,我已经使用并取得了Sidekiq一件轻而易举的使用作业迄今为止最容易调度.

ruby ruby-on-rails message-queue background-process

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

在Windows上使用Ruby进行开发

我即将开始一项新工作,我将在Windows机器上使用Ruby和Rails进行开发.我已经多年没有使用过Windows,而Textmate,Git和Bash等都是使用Mac的工作流程中不可或缺的一部分.

那么,是否有人对使用的最佳工具或工作策略有任何建议或建议?还是要避免陷阱?

当然,我特别感兴趣的是最好的文本编辑器.(我正在认真考虑借此机会学习Vim或Emacs,或者无论Windows端口被调用,但欢迎任何其他想法.)

此外,任何有用的插件,工具或程序的想法将不胜感激.

如果你认为我已经完全失去理智,那么随时告诉我;-)

干杯!

ruby windows ruby-on-rails

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

将Rails 3.1项目部署到Heroku时出现问题:无法找到JavaScript运行时

我无法将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)

javascript ruby ruby-on-rails heroku

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

你如何解析Ruby中的url以获得主域名?

我希望能够解析任何带有ruby的url来获取域的主要部分而不是www(只是XXXX.com)

ruby dns url parsing ruby-on-rails

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

Ruby:将Date和Time对象组合成DateTime

简单的问题,但我找不到一个好的或明确的答案.将Ruby Date和Time对象(对象,而不是字符串)组合到单个DateTime对象中的最佳和最有效的方法是什么?

ruby

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

在查询的位置查找nil has_one关联

这可能是一个简单的问题,但我似乎正在拔头发找到一个优雅的解决方案.我有两个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

ruby activerecord ruby-on-rails

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

group_by在rails中由2个或更多属性组成

我有一个@bunch作为数组返回的模型

每个模型都有属性 - commentable_idcommentable_type(多态关联)

我想通过可评论的方式对模型进行分组,但如果我这样做的话

@bunch.group_by(&:commentable)
Run Code Online (Sandbox Code Playgroud)

它还从数据库中获取可评论,这是不需要的.

我可以做@bunch.group_by(&:commentable_id)但这会引起一些混淆,因为可以有几种类型的可评论模型

有没有办法去group_by commentable_idAND commentable_type

ruby group-by ruby-on-rails-3

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

从索引到字符串结尾的子字符串的Ruby习惯用法

只是想知道是否有一个Ruby习惯用法从索引中提取子字符串直到字符串结尾.我知道str[index..-1]它在一个范围内的对象传递给工作String[]方法,但它是一个有点笨拙.例如,在python中,您可以编写str[index:]哪些内容可以隐式地获取字符串的其余部分.

例:

s = "hello world"
s[6..-1] # <-- "world"
Run Code Online (Sandbox Code Playgroud)

还有什么比这更好的s[6..-1]吗?

ruby string substring idiomatic slice

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

rspec中的双重方法是什么?

在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)

ruby rspec mocking stub

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