草庐IT

native_handle_type

全部标签

ruby - 在随后的 bundle 安装中跳过 native 扩展重新编译

由于安装nokogirigem(1.6.0)需要时间,我的生产部署需要额外几分钟。我知道这是因为安装gem会触发native扩展编译。请注意,我已经打包我的包并将其checkinDVCSbundlepackage如果没有其他任何变化,是否有一种方法可以避免重新编译native扩展,从而加快部署速度?更新:我使用OpscodeChef进行部署(具体来说是chef-solo)环境是:Ubuntu12.04LTS64位ruby193-p448 最佳答案 我找到了一种方法来做到这一点。解释如下:Bundler,默认情况下将gems安装到环境

ruby - RVM 与 ruby​​ 的 native 安装

我想知道在生产服务器中使用rvm是否有任何缺点。我应该喜欢什么,rvm或native安装,为什么? 最佳答案 使用RVM。因为它更简单。您将在一个地方拥有所有发行版,在一个地方拥有所有gem,并且您使用的工具与您在开发中使用的工具相同。也没有性能问题。 关于ruby-RVM与ruby​​的native安装,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5670947/

ruby - pg gem : 'Warning: no type cast defined for type "numeric"'

我在从pggem中获取输入结果时遇到问题。require'pg'require_relative'spec/fixtures/database'client=PG.connect(DB[:pg])client.type_map_for_queries=PG::BasicTypeMapForQueries.new(client)client.type_map_for_results=PG::BasicTypeMapForResults.new(client)client.exec(%|select*fromtestme;|)do|query|query.each{|r|putsr.ins

ruby - 从 Gemfile 中找出哪些 gems 需要 native c 扩展?

我最近才开始将注意力转移到在TorqueBox上部署Ruby应用程序,这当然是在Jruby上构建的。到目前为止,我基本上一直在执行bundleinstall,然后在通往jrubydom的过程中处理每个gem,但我遇到了几个gem,由于需要重新实现大型他们的一部分。有没有一种方法可以调用bundler或ruby​​gems来遍历所有gem及其deps以测试它们是否需要nativec扩展,然后返回这样一个列表?处理一些更小的项目,或者甚至知道是否值得处理一个项目,将它转移到jruby肯定会很好。 最佳答案 基于具有原生扩展的gems通常

ruby-on-rails - Rails ActiveRecord - update_all : how to update multiple fields at once with mixed type of arguments

我有一个用例,我想使用ActiveRecord::Relationupdate_all方法并指定要设置的几个字段。我使用update_all是因为可以更新很多条目,我不想将它们全部加载并一个一个地更新。其中一些需要直接的SQLSET语句,例如因为我根据另一列的值设置一列。是否有一个简单的语法与update_all一起使它可读,沿着这个=>MyModel.where(state::foo).update_all(['timespent=timespent+500',#Can'tbeanythingelsethanaSQLstatementstate::bar,#RegularRailsS

ruby-on-rails - 如何在 Ubuntu 16.04 上安装 mysql2 [错误 : Error installing mysql2: ERROR: Failed to build gem native extension.]

这个问题在这里已经有了答案:Errorinstallingmysql2:Failedtobuildgemnativeextension(32个答案)关闭5年前。我不知道在ubuntu上安装mysql2:(sudogeminstallmysql2Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingmysql2:ERROR:Failedtobuildgemnativeextension.currentdirectory:/var/lib/gems/2.3.0/gems/mysql2-0.4.4/ext/my

ruby-on-rails - Gem::Ext::BuildError:错误:无法构建 gem native 扩展。 postgresql 和 ROR

我需要在应用程序ROR的生产环境中安装postgresql,以便在将其与heroku一起使用后,但是当我尝试安装gem'pg'时,会触发以下错误。我是新手,所以我不知道该怎么做我正在使用ruby​​1.9.3p547(2014-05-14修订版45962)[i686-linux]railsrails3.2.19Ubuntu12.04gem文件来源'https://rubygems.org'gem'rails','3.2.19'#BundleedgeRailsinstead:#gem'rails',:git=>'git://github.com/rails/rails.git'gem'm

ruby-on-rails - 可以在 Thread::handle_interrupt block 之外异步处理 ruby​​ 异常吗?

乍一看,我以为新的ruby​​2.0Thread.handle_interrupt会解决我所有的异步中断问题,但除非我弄错了,否则我无法让它做我想做的事(我的问题在最后和标题中)。从文档中,我可以看到如何避免在某个block中接收中断,将它们推迟到另一个block。这是一个示例程序:duration=ARGV.shift.to_it=Thread.newdoThread.handle_interrupt(RuntimeError=>:never)do5.times{putc'-';sleep1}Thread.handle_interrupt(RuntimeError=>:immedia

ruby-on-rails - Rails 4.2,回形针 gem 。无法附加 .docx 类型,尽管已注册 MIME 类型,但读取 content_type 为 'application/zip'

我已经注册了一个MIME类型以允许Paperclip读取.docx文件的content_type作为application/vnd.openxmlformats-officedocument.wordprocessingml.document。但是在测试中,content_type仍被读取为application/zip。知道为什么吗?更令人沮丧的是,.pptx和.xlsxmime类型已经被注册,这些测试通过了(呃)。config/initializers/mime_types.rbMime::Type.register'application/vnd.openxmlformats-o

ruby-on-rails - capistrano - NameError:未初始化的常量 Net::SSH::KnownHosts::SUPPORTED_TYPE

我正在尝试将我的Rails(3.1.3)应用程序部署到预生产环境。我使用capistrano(2.12.0)和rvm-capistrano(1.2.2)。当我调用bundleexeccapssh时,它工作正常。但是当我调用bundleexeccapdeploy时,我得到以下跟踪:$capdeploytriggeringstartcallbacksfor`deploy'*18:42:19==Currentlyexecuting`multistage:ensure'***Defaultingto`preprod'*18:42:19==Currentlyexecuting`preprod'*