标签: ruby

我应该在Heroku上部署我的Ruby on Rails应用程序

关于我自己.我今年24岁,去年毕业于北卡罗来纳州立大学,获得硕士学位.统计,数学,那种事.我没有强大的编程背景,这对我的问题非常重要.如果我说任何没有任何意义的话,那就是原因.从毕业以来,我一直在与其他几个人一起在Rails应用程序上工作.我的编程经验主要是Ruby on Rails(1.2年.)我知道R,SAS(统计语言,对这个问题没什么帮助.)

显然,这意味着它已经开发了一年多,我们还没有完成.主要的开发人员是一个优秀的程序员,只是他已经有一份全职工作,并在业余时间做这个应用程序.由于他最近没有足够的时间,我已经完全负责该应用程序.

我们现在部署在Slicehost上.该应用程序是我们不需要编程任何其他东西(除非我们想到更多的功能.)我问我们是否应该迁移到Heroku的原因是,在我看来,Heroku是一个简单的平台,部署.Slicehost对我来说似乎太复杂了.另一个开发人员处理它,而不是我.我看了如何在Heroku上部署应用程序,看起来我能够做到.如果需要,我们需要我们的应用程序扩展,Heroku提供.至于钱,我会在最低限度(免费)开始,看看它是怎么回事.如果需要,我可以支付额外的功能.

我们正在使用Redmine进行项目管理和存储库(不是git,我认为我们需要在Heroku上使用它.)git是否类似于Redmine?这个容易用吗?

现在,在Slicehost上,我们有4个守护进程(不断运行的进程.)我们有8个delayed_job工作者.我知道启动守护进程和delayed_job工作程序的命令行.这些可以在Heroku上运行吗?

我想知道我是否仍然可以使用Heroku的RAILS_ENV =生产脚本/控制台.

用户界面是一个javascript文件.在开发模式下,如果我在终端中执行脚本/服务器,并在浏览器中转到http:// localhost:3000,我就能看到它.Heroku会按照我想要的方式加载这个页面吗?

我们有一个工作网站的应用程序,我们自己的域名.我真的不知道DNS是什么,所以我可能无法将Heroku应用程序链接到它,除非有一个简单的方法.我认为Heroku将其链接到appname.heroku.com作为默认值.

根据我的编程经验,Heroku是否足够容易让我使用,我应该找到另一份工作,还是应该让seppuku工作?

ruby git deployment ruby-on-rails heroku

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

如何在处理任何数据之前测试open-uri url

我正在尝试使用ruby(1.8.6)中的"open-uri"处理链接列表中的内容,但是当一个链接断开或需要身份验证时我收到错误时会发生错误:

open-uri.rb:277:in `open_http': 404 Not Found (OpenURI::HTTPError)
from C:/tools/Ruby/lib/ruby/1.8/open-uri.rb:616:in `buffer_open'
from C:/tools/Ruby/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
from C:/tools/Ruby/lib/ruby/1.8/open-uri.rb:162:in `catch' 
Run Code Online (Sandbox Code Playgroud)

要么

C:/tools/Ruby/lib/ruby/1.8/net/http.rb:560:in `initialize': getaddrinfo: no address associated with hostname. (SocketError)
from C:/tools/Ruby/lib/ruby/1.8/net/http.rb:560:in `open'
from C:/tools/Ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
from C:/tools/Ruby/lib/ruby/1.8/timeout.rb:53:in `timeout'
Run Code Online (Sandbox Code Playgroud)

要么

C:/tools/Ruby/lib/ruby/1.8/net/protocol.rb:133:in `sysread': An existing connection was forcibly closed by the remote host. (Errno::ECONNRESET)
from C:/tools/Ruby/lib/ruby/1.8/net/protocol.rb:133:in `rbuf_fill'
from C:/tools/Ruby/lib/ruby/1.8/timeout.rb:62:in `timeout'
from C:/tools/Ruby/lib/ruby/1.8/timeout.rb:93:in `timeout'
Run Code Online (Sandbox Code Playgroud)

有没有办法在处理任何数据之前测试响应(url)?

代码是:

require 'open-uri'

smth.css.each do |item| 
 open('item[:name]', 'wb') do |file|
   file << open('item[:href]').read
 end
end
Run Code Online (Sandbox Code Playgroud)

非常感谢

ruby open-uri

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

Nils和方法链接

我刚刚进入红宝石世界,我可以伸出援助之手.

假设b是nil.

我想要返回以下代码nil而不是"NoMethodError:undefined method"

a.b.c("d").e
Run Code Online (Sandbox Code Playgroud)

我尝试的第一件事是重载NilClass的missing_method只是返回一个零.这是我想要的行为,除了我不想成为这种侵扰.

如果我能做到这样的话,我会喜欢它

SafeNils.a.b.c("d").e
Run Code Online (Sandbox Code Playgroud)

所以它就像是一种干净的方式来本地重载NilClass的行为.

我很想听到一些想法或很多资源来挖掘这个.只要它相当干净,我也对其他方法持开放态度.

非常感谢你.

ruby null metaprogramming ruby-on-rails

9
推荐指数
3
解决办法
2696
查看次数

Rails gem rails3-jquery-autocomplete如何按用户范围

我正在使用Rails gem rails3-jquery-autocomplete来为帖子添加类别.

我想限制搜索只包括属于当前用户或帖子的作者的类别在结果中.

文档说我可以指定范围:

:示波器

添加了使用范围的选项.传递数组中的范围.例如:scopes => [:scope1,:scope2]

但我不确定如何在这里传递用户ID?

这似乎是一个comon场景,我错过了一些明显的东西吗?

我找到了一个建议修改get_item方法的答案,但这似乎打破了自动完成

确定rails3 jquery autocomplete插件的结果范围

ruby named-scope ruby-on-rails jquery-autocomplete ruby-on-rails-3

9
推荐指数
3
解决办法
4849
查看次数

有没有办法在Vim中为Ruby建立良好的自动完成功能?

我一直在尝试为Ruby代码设置Vim自动完成功能并且没有成功.我的意思是"工作",但我希望有更好的插件或配置可用.

我已经设置了rubycomplete插件,它做得不错,但没有像RubyMine这样的IDE.一旦我安装它,它只是一股清新的空气,看看我错过了什么.它非常清楚语法,上下文,通常只显示相关的可能选项.

也许我只是没有正确设置.找不到教程,博客文章,关于如何解决这个问题的好文档(特别是最新的文档)是不可能的.有时您会发现有不同的工具和设置,并没有太多解释如何去做.

这类事物是否有社区标准?实现这一目标的最佳工具是什么?任何好的教程,来源,如何去做的线索?

我一直听到有人说他们喜欢Vim而不喜欢像Rubymine这样的IDE,并且他们可以通过适当的插件配置在很多方面实现几乎相同的行为,但我的经验并不一样.我真的想继续使用Vim,因为它更轻,我喜欢编辑器,但生产力是最重要的,我浪费了太多时间阅读3年和4年前关于如何设置它的博客文章.

ruby vim omnicomplete

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

Rails 3动态添加虚拟属性

我的设置:Rails 3.0.9,Ruby 1.9.2

我有理由这样做,但我需要的是一种动态添加虚拟属性到activerecord结果集的方法.这意味着我没有attr_accessor在模型中使用,而是希望动态地将虚拟属性添加到结果集中.

例如,

users = User.all
#a user has following attributes: name, email, password
Run Code Online (Sandbox Code Playgroud)

我喜欢做的是说增加(不使用attr_accessor)虚拟属性status来users,这可能吗?

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

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

适当的Assert_Raise单元测试和异常类的使用

我正在练习练习49学习Ruby的艰辛之路

练习要求为所提供的每个功能编写单元测试.我正在测试的一个项目是,是否引发了适当的异常.建议我们assert_raise为此目的使用.

这是我正在测试的代码:

class ParserError < Exception

end

Pair = Struct.new(:token, :word)

def peek(word_list)
    begin
        word_list.first.token
    rescue
        nil
    end 
end

def match(word_list, expecting)
    word = word_list.shift
    if word.token == expecting
        word
    else
        nil
    end
end

def skip_word(word_list, token)
    while peek(word_list) == token
        match(word_list, token)
    end
end

def parse_verb(word_list)
    skip_word(word_list, :stop)

    if peek(word_list) == :verb
        return match(word_list, :verb)
    else
        raise ParserError.new("Expected a verb next.")
    end
end
Run Code Online (Sandbox Code Playgroud)

这是测试,对于函数parse_verb:

def test_parse_verb
    list_one = [Pair.new(:verb, 'go'), Pair.new(:noun, 'king')]
    assert_equal(parse_verb(list_one), Pair.new(:verb, 'go')) …
Run Code Online (Sandbox Code Playgroud)

ruby unit-testing assert assertraises learn-ruby-the-hard-way

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

rake检查是否已经运行

是否有可能以某种方式执行rake任务只有它还没有运行,我想使用cron执行一些rake任务但是rake任务不应该在前一次调用未完成时启动谢谢

ruby rake ruby-on-rails rake-task ruby-on-rails-3

9
推荐指数
3
解决办法
3251
查看次数

ActiveRecord 3.1.0多个数据库

我正在尝试将ActiveRecord gem升级到最新的3.1.0版本并看到引发了很多异常,我认为这是由于我们如何处理多个数据库.

对于我们的每个数据库,我们指定一个单独的基类,它继承自那里ActiveRecord::Base并establish_connection在其中调用.没有跨数据库关系.到目前为止,这对我们来说运作良好.

升级到ActiveRecord 3.1.0后,我发现它ActiveRecord::ConnectionNotEstablished在遍历关系时会出现异常(即它会成功从数据库中提取单个实体或一组,但在导航到相关类时失败).

回溯的顶线是C:/Ruby/lib/ruby/gems/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:410:in 'retrieve_connection',所以我稍微挖了一下.该方法定义如下:

def retrieve_connection(klass) #:nodoc:
    pool = retrieve_connection_pool(klass)
    (pool && pool.connection) or raise ConnectionNotEstablished
end
Run Code Online (Sandbox Code Playgroud)

我的简单test(puts Customer.first.address)调用了retrieve_connection3次.两次Customer作为klass参数,一次ActiveRecord::Base作为参数 - 当它失败时,因为establish_connection没有被调用ActiveRecord::Base.

那么实际的问题是 - 在ActiveRecord中有一种新的推荐方法来处理多个数据库连接吗?如果是这样,它是什么?

如果没有,可能导致这个问题的原因是什么?

ruby activerecord

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

与php相比,ruby中的模数操作数

我正在寻找一个关于Ruby的模运算如何工作以及为什么在Ruby中的简单解释

puts  4 % 3   # 1
puts -4 % 3   # 2 <--why?
puts -4 % -3  # -1 
Run Code Online (Sandbox Code Playgroud)

但在PHP中:

<?php

echo  4 % 3;  #  1
echo -4 % 3;  # -1
echo -4 % -3; # -1
Run Code Online (Sandbox Code Playgroud)

在我看来像-4%3实际上是8%3(8是4和-4之间的差异).

php ruby

9
推荐指数
2
解决办法
5609
查看次数