Tag: ruby

合并基于ruby中特定键/值对的哈希值

我试图基于特定的键/值对合并散列数组。 array = [ {:id => ‘1’, :value => ‘2’}, {:id => ‘1’, :value => ‘5’} ] 我希望输出 {:id => ‘1’, :value => ‘7’} 正如patru所说,在sql术语中,这相当于: SELECT SUM(value) FROM Hashes GROUP BY id 换句话说,我有一个包含记录的哈希数组。 我想获得特定字段的总和,但总和将按键/值对分组。 换句话说,如果我的选择标准是:id,如上例所示,则它会将哈希值分成id为相同的组和其他键的总和。 对于由于之前的错字引起的任何混淆,我道歉。

Ruby gem安装和“没有这样的文件加载”

我在Backtrack 5中使用Ruby 1.9.2dev编写脚本但是在尝试使用库“htmlentities”解析html实体时遇到了一些问题。 虽然我已经安装了gem,但我无法加载库。 我将向您展示我在控制台中遇到的问题: root@bt:~# gem list -d htmlentities *** LOCAL GEMS *** htmlentities (4.3.1) Author: Paul Battley Homepage: https://github.com/threedaymonk/htmlentities Installed at: /var/lib/gems/1.9.2 A module for encoding and decoding (X)HTML entities. root@bt:~# irb irb(main):001:0> require ‘htmlentities’ LoadError: no such file to load — htmlentities from (irb):1:in `require’ from (irb):1 from /usr/bin/irb:12:in `’ 这与我和nokogiri有同样的问题。 我安装了库 […]

Twitter Bootstrap模式不起作用

我一直在尝试为我的设计和omniauth登录设置twitter bootstrap模式但没有成功。 我也尝试过几个教程,仍然无法让它们打开。 我的服务器日志中没有出现错误,只是以下内容: “Processing by Devise::SessionsController#new as JS” 我在application.coffee文件中需要twitter / bootstrap #= require_self #= require twitter/bootstrap #= require ./util #= require ./home and so on 在我的application.html.slim中,我添加了两个额外的链接来登录/登录现有的链接,只是为了确保这些链接在删除旧的之前 li = link_to “Login”, new_user_session_path, :remote => true, ‘data-toggle’ => ‘modal’, ‘data-target’ => ‘#login_modal’, :class => “btn btn-small”, :method => ‘get’ li = link_to “Sign Up Free”, new_user_session_path, […]

返回对象的模型中的自定义方法

在数据库中,我有一个名为“body”的字段,其中包含XML。 我在模型中创建的方法如下所示: def self.get_personal_data_module(person_id) person_module = find_by_person_id(person_id) item_module = Hpricot(person_module.body) personal_info = Array.new personal_info = {:studies => (item_module/”studies”).inner_html, :birth_place => (item_module/”birth_place”).inner_html, :marrital_status => (item_module/”marrital_status”).inner_html} return personal_info end 我希望函数返回一个对象而不是一个数组。 所以我可以使用Module.studies而不是Model [:studies]。 感谢您的时间。 西尔维乌 ps我是rails和ruby的新手。 我有一个C背景。

录音机问题

寻找一个免费的录音机,这样用户就可以自己录制,并将记录上传到服务器(通过Rails)。 有什么我可以用来实现这个目标吗?

Ruby无法从open3模块中找到capture2e方法

我试图使用脚本blogger.rb ,我只是无法让它工作。 它一直给我错误: blogger.rb:294:在text2html’: undefined method capture2’for Open3:Module(NoMethodError) 该脚本在开始时require Open3 。 我不明白问题出在哪里! 我不懂Ruby。 但是,我可以智能地阅读和编辑代码。

检查Rails中的HTTP状态代码

有没有一种简单的方法来检查Ruby on Rails中另一个网站(例如http://google.com )的状态代码? 理想情况下,要检查的URL列表将从DB中提取并通过CRON(或等效的)进行处理。

使用Postgresql在Datamapper中像(ilike)一样不区分大小写

我们在Sinatra应用程序中使用Datamapper,并希望使用不区分大小写,就像在Sqlite(本地开发)和Postgresql(在生产中的Heroku上)一样。 我们有这样的陈述 TreeItem.all(:name.like =>”%#{term}%”,:unique => true,:limit => 20) 如果term是“BERL”,我们会从Sqlite和Postgresql后端获得建议“BERLIN”。 但是,如果term是“Berl”,我们只从Sqlite而不是Postgresql获得结果。 我想这与dm-postgres-adapter和dm-sqlite-adapter在生成的SQL查询中输出LIKE这一事实有关。 由于Postgresql具有区分大小写的LIKE我们得到了这个(对于我们不需要的)行为。 有没有办法像Datamapper一样不区分大小写而不诉诸于对适配器使用原始SQL查询或修补适配器以使用ILIKE而不是LIKE ? 我当然可以在两者之间使用某些东西,例如: TreeItem.all(:conditions => [“name LIKE ?”,”%#{term}%”],:unique => true,:limit => 20) 但是我们将在我们自己的代码中使用Postgresql,而不仅仅是作为适配器的配置。

如何使用Mechanize gem获取网站的所有链接?

如何使用ruby Mechanize gem获取网站的所有链接? Mechanize可以像Anemone gem那样做: Anemone.crawl(“https://www.google.com.vn/”) do |anemone| anemone.on_every_page do |page| puts page.url end end 我是网络爬虫的新手。 提前致谢!

真正的sinatra(ruby / rack)after_filter的最快方法是什么?

好的,这是一项简单的任务。 在我将html渲染到客户端后,我想用请求中的信息执行db调用。 我正在使用sinatra,因为它是一个轻量级的微框架,但是如果它更快/更容易(Rack?),我真的想用ruby做任何东西。 我只想获取url并根据url将客户端重定向到其他位置。 那么如何使用rack / sinatra进行真正的after_filter。 而after_filter我的意思是在响应发送给客户端之后。 或者,如果没有线程,这是不可行的? 我分叉sinatra并在filter之后添加,但是没有办法刷新响应,即使是send_data,假设流文件(显然是二进制文件)等待after_filters。 我已经看到了这个问题: 多部分响应在ruby中,但答案是针对rails。 我不确定它是否真的刷新了对客户端的响应,然后允许后续处理。 Rack :: Callbacks有一些回调之前和之后,但即便看起来它们会在响应被发送到客户端之前运行这里的Rack :: Callbacks实现(添加注释): def call(env) @before.each {|c| c.call(env) } response = @app.call(env) @after.each {|c| c.call(env) } response #i am guessing when this method returns then the response is sent to the client. end 所以我知道我可以用rake通过shell调用后台任务。 但是没有太多也是好的…还有NeverBlock但是对于执行一个单独的进程而不延迟响应是好的还是它仍然会使应用程序等待整体(我认为它会)? 我知道这很多,但简而言之,简单的after_filter在ruby / sinatra / rack中发送响应之后真正运行。 […]