Tag: ruby

在Ruby中to_s与to_str(to_i / to_a / to_h与to_int / to_ary / to_hash)

我正在学习Ruby,并且我看到了一些让我困惑的方法,特别是to_s vs to_str (以及类似to_i / to_int , to_a / to_ary和to_h / to_hash )。 我读过的内容解释说,较短的格式(例如to_s )用于显式转换,而较长的格式用于隐式转换。 我真的不明白如何to_str实际上会被使用。 除了string以外的东西会定义to_str吗? 你能给这个方法的实际应用吗?

在Rails应用程序中查找未使用的代码

我如何find代码是什么,而不是在生产中运行? 该应用程序经过了充分的testing,但有很多testing未使用的代码。 因此,他们在运行testing时得到报道…我想重构和清理这个混乱,它不断浪费我的时间。 我有很多后台工作,这就是为什么我想要制作env来指导我。 在heroku上运行,我可以旋转dynos来补偿探查器的任何性能影响。 相关问题如何在Ruby应用程序中find未使用的方法? 没有帮助。 奖金:指示一行代码运行的频率。 不知道为什么我想要它,但我做到了! 🙂

有雾和AWS警告:无法加载“unf”gem

自从我上次进行软件包更新以来,Rails控制台(rails服务器,rails控制台,db:migrate等)中的每个操作都会引发警告: [fog][WARNING] Unable to load the 'unf' gem. Your AWS strings may not be properly encoded. 我确定我没有更改我的application.rb文件中的AWSstring中的任何内容: # Amazon S3 credentials ENV["AWS_ACCESS_KEY_ID"] = "AWS_ACCESS_KEY_ID" ENV["AWS_SECRET_ACCESS_KEY"] = "AWS_SECRET_ACCESS_KEY" ENV["AWS_S3_BUCKET"] = "my-bucket" 我的gemfile中没有这个“unf”gem。 我应该添加吗?

哪个关键/价值商店是最有前途的/稳定的?

我打算开始使用一些关键/价值商店(主要是作为一种学习体验),但是最近出现了很多,我不知道从哪里开始。 从内存中列出,我可以想到: CouchDB的 MongoDB的 了Riak Redis的 东京内阁 伯克利DB 卡桑德拉 MemcacheDB 而且我相信还有更多的东西在我的search工作中滑落了。 有了所有的信息,很难find所有竞争对手之间的可靠比较。 我的标准和问题是: (最重要)你推荐哪个, 为什么 ? 哪一个是最快的? 哪一个是最稳定的? 哪一个是最容易设置和安装的? 哪些有绑定的Python和/或Ruby? 编辑: 到目前为止,看起来Redis是最好的解决scheme,但这只是因为我已经得到了一个坚实的回应(来自ardsrk)。 我正在寻找像他这样的更多的答案,因为他们指向了有用的量化信息。 你使用哪个Key-Value商店, 为什么 ? 编辑2: 如果有人对CouchDB,Riak或MongoDB有经验,我很乐意听到你们的经验(如果你能对其中的几个进行比较分析的话,更是如此)

在Ruby的Kernel类中增加一个assert()方法是否是惯用的Ruby?

我正在通过在Ruby中编写一个相当于Kent Beck的xUnit的扩展Ruby的理解。 Python(肯特写入)有一个assert()方法在广泛使用的语言。 Ruby不会。 我认为应该很容易添加这个,但内核是正确的地方呢? 顺便说一句, 我知道Ruby中各种单元框架的存在 – 这是学习Ruby成语的练习,而不是“完成某件事”。

我如何检查一个类是否被定义?

如何将string转换为类名,但只有当该类已经存在? 如果琥珀已经是一个类,我可以通过以下方式从一个string中获得: Object.const_get("Amber") 或(在Rails中) "Amber".constantize 但是其中的任何一个都会因为NameError: uninitialized constant Amber而失败NameError: uninitialized constant Amber如果琥珀色还不是一个类,那么就是NameError: uninitialized constant Amber 。 我的第一个想法是使用defined? 方法,但它不区分已经存在的类和不存在的类: >> defined?("Object".constantize) => "method" >> defined?("AClassNameThatCouldNotPossiblyExist".constantize) => "method" 那么在我尝试转换它之前,如何testing一个string是否可以命名一个类呢? (好吧,如何begin / rescue块赶上NameError错误?太丑了?我同意…)

事件源/服务器 – 通过Nginx发送事件

在服务器端使用Sinatra和stream块。 get '/stream', :provides => 'text/event-stream' do stream :keep_open do |out| connections << out out.callback { connections.delete(out) } end end 在客户端: var es = new EventSource('/stream'); es.onmessage = function(e) { $('#chat').append(e.data + "\n") }; 当我直接使用应用程序,通过http://localhost:9292/ ,一切工作完美。 连接是持久的,所有的消息都被传递给所有的客户端。 但是,当它通过Nginx, http://chat.dev ,连接被丢弃,重新连接每秒钟都会触发。 Nginx的安装程序看起来对我好: upstream chat_dev_upstream { server 127.0.0.1:9292; } server { listen 80; server_name chat.dev; location / […]

Rails 4 before_action,将parameter passing给被调用的方法

我有以下代码: class SupportsController < ApplicationController before_action :set_support, only: [:show, :edit, :update, :destroy] …. 是否有可能传递一个string的方法set_support适用于所有4个视图方法? 是否有可能传递一个不同的string的方法set_support为视图中的每个方法?

数据库configuration不指定适配器

当我试图连接到一个MySQL数据库时出现这个错误。 问题是应用程序工作了几个星期,然后随机我得到这个消息。 当我得到这个错误消息时,应用程序无法重新连接到数据库,直到我重新启动它。 我正在使用configuration文件连接到数据库,并且指定了适配器…数据库configuration在运行时不会生成。 你有什么想法吗?

检查两个数组是否具有相同的内容(以任何顺序)

我在Rails 1.2.3中使用了Ruby 1.8.6,并且需要确定两个数组是否具有相同的元素,而不pipe它们是否以相同的顺序排列。 其中一个数组保证不包含重复项(另一个可能,在这种情况下答案是否定的)。 我的第一个想法是 require 'set' a.to_set == b.to_set 但是我想知道是否有更高效或习惯的做法。