Rails,Ruby 1.9.3p0和mysql gem

我正在运行CentOS6并从源代码安装Ruby,以及Rails和其他一些工作人员。 ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux] rails -v Rails 3.1.3 一些gem: ***当地gem*** 动作管理员(3.1.3,2.3.14) actionpack(3.1.3,2.3.14) activemodel(3.1.3) activerecord(3.1.3,2.3.14) activeresource(3.1.3,2.3.14) activesupport(3.1.3,2.3.14) archive-tar-minitar(0.5.2) arel(2.2.1) bigdecimal(1.1.0) bouncy-castle-java(1.5.0146.1) 建设者(3.0.0) 捆绑(1.0.21) 代码(0.9.7) 列(0.3.5) edavis10-object_daddy(0.4.3) erubis(2.7.0) fastercsv(1.5.0) ffi(1.0.11) 徒步旅行(1.2.1) 锄头(2.12.4) i18n(0.6.0,0.4.2) io-console(0.3) jruby-openssl(0.7.4) json(1.5.4) linecache19(0.5.13) 邮件(2.3.0) 元类(0.0.1) 哑剧型(1.17.2) minitest(2.5.1) 摩卡(0.10.0) multi_json(1.0.4) mysql(2.8.1) mysql2(0.3.11,0.2.7) net-ldap(0.2.2) 多语言(0.3.3) 机架(1.3.5,1.1.2) rack-cache(1.1) 机架式(0.8.3) rack-ssl(1.3.2) 机架测试(0.6.1) […]

Net :: HTTP中的服务器名称指示支持?

我正在尝试让Ruby的Net::HTTP实现与SNI一起使用。 mail.google.com和gmail.com都位于相同的IP地址上,因此当通过SSL连接时,Google服务器需要知道要使用的证书。 默认情况下,它会返回mail.google.com证书,如果您尝试实施WebFinger,则会出现问题。 WebFinger要求您检索https://gmail.com/.well-known/host-meta以获取LRDD信息,但是,出于安全原因,validationSSL证书信息至关重要。 由于Google在这种情况下提供默认的mail.google.com证书,因此SSL post_connection_check失败。 这里正确的解决方案是为Net::HTTP启用服务器名称指示,但我不清楚如何使用OpenSSL的Ruby绑定。 其他人有想法吗? 您应该能够通过运行来查看问题: require ‘open-uri’ open(‘https://gmail.com/.well-known/host-meta’) { |f| f.read } 我还创建了一个使用早期版本的curl和OpenSSL来展示问题的要点: https://gist.github.com/7936ef38787092a22897

ruby中的自定义排序方法

我想通过评估两个属性来指定一个自定义块方法来对ruby中的对象数组进行排序。 然而,在Google中进行了多次搜索后,如果没有运算符,我就没有任何示例。 这就是我想要做的:比较a和b: if ax less than bx return -1 if ax greater than bx return 1 if ax equals bx, then compare by another property , like ay vs by 这是我的代码(ruby中的noob,对不起),它不起作用…… ar.sort! do |a,b| if ax bx return 1 else return ay by end 这个块在一个函数内,所以返回正在退出函数并返回-1 …我会感谢任何帮助。 亲切的问候。

ActiveModel :: ForbiddenAttributesError使用update_attributes创建了params hash

我正在尝试使用simple_form编辑/更新模型记录,但表单不会直接更改模型字段。 相反,我提供了几个check_box_tag字段,用于告知更新需要更改的字段。 因此,更新未收到可用于更新属性的params [:device]哈希。 我试图创建这个哈希,但是当我发出@ device.update_attributes(params [:device])时,我得到了ForbiddenAttributesError。 我相信我的强参数列表是正确的。 如果我允许在编辑视图中处理一个模型字段(名称),我会收到预期的参数[:device]哈希,一切正常。 如果我禁用该字段,因为我不希望它被更改,那么我需要自己创建该哈希并收到错误。 当我查看我创建的哈希时,它看起来等同于视图传递的哈希。 我不明白为什么会失败。 环境是Ruby 2.0.0,Windows 8.1上的Rails 4.1和RubyMine 6.3。 表单是: Device: 我发送f.input:name,disabled:false并允许视图生成params [:device]时收到的params [:device]是: ActionController::Parameters (3 element(s)) “{“name”=>”D105”, “password”=>”D105Dvgr”, “password_confirmation”=>”D105Dvgr”}” 一切正常。 我创建的参数[:device]是: ActionController::Parameters (3 element(s)) “{“name”=>”D106”, “password”=>”D106VdAd”, “password_confirmation”=>”D106VdAd”}” 并且,我收到禁用属性错误,即使我看到两者之间没有区别。 更新是: class DevicesController ‘Not authorized as an administrator.’ @device = Device.find(params[:id]) pwd_msg = “” if params[:chg_pwd] pwd_gen = […]

未定义的符号:尝试运行Thin Webserver时的SSLv2_method

我已经用rvm( rvm pkg install openssl ) rvm pkg install openssl ,然后rvm reinstall 1.9.3 –with-openssl-dir=$rvm_path/usr了rvm reinstall 1.9.3 –with-openssl-dir=$rvm_path/usr 当我尝试运行瘦Web服务器时,出现以下错误: /home/ubuntu/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/openssl.so:undefined symbol:SSLv2_method – /home/ubuntu/.rvm/rubies/ruby -1.9.3-p327 / lib / ruby​​ / 1.9.1 / x86_64-linux / openssl.so(LoadError) 这是在Ubuntu 12.04上运行的,我读过Ubuntu 12构建没有SSLv2支持的OpenSSL。 然而,这里它引用了RVM的包 – RVM是否也这样做? 这个问题有没有已知的解决方法?

Rails Streaming不流式传输

我正在努力为我的rails应用程序添加一个流组件,因为我想开始使用SSE。 我试过让它在一个较小的例子中工作,但我仍然遇到麻烦。 我一直无法实际获取rails以正确地传递对curl请求的响应。 我正在关注http://tenderlovemaking.com/2012/07/30/is-it-live.html上的教程。 我不确定是否有必要为OSX配置的东西,或者我的配置中是否缺少某些东西。 任何帮助将不胜感激。 我在OSX本地运行它。 当我运行curl -i localhost:3000我得到以下响应: HTTP/1.1 200 OK X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-UA-Compatible: chrome=1 Content-Type: text/event-stream Last-Modified: Wed Apr 23 23:10:15 2014 Cache-Control: no-cache Set-Cookie: request_method=GET; path=/ X-Request-Id: 89f2af3e-76e9-4873-85b0-3b6fe45f6343 X-Runtime: 0.001724 Transfer-Encoding: chunked hello world hello world hello world hello world hello world hello world hello world […]

安装libv8(3.11.8.13)时发生错误,Bundler无法继续

运行捆绑安装后,我收到此错误: Gem::Package::FormatError: no metadata found in /Users/jeanosorio/.rvm/gems/ruby-1.9.3-p286/cache/libv8-3.11.8.13-x86_64-darwin-12.gem An error occurred while installing libv8 (3.11.8.13), and Bundler cannot continue. Make sure that `gem install libv8 -v ‘3.11.8.13’` succeeds before bundling. 我尝试着 gem install libv8 -v ‘3.11.8.13’ 但我明白了 ERROR: Error installing libv8: invalid gem format for /Users/jeanosorio/.rvm/gems/ruby-1.9.3-p286/cache/libv8-3.11.8.13-x86_64-darwin-12.gem 这里有什么问题。 请帮忙。

Ruby 2.0.0 RVM无法编译OS X 10.8.2 Mountain Lion

尝试使用RVM安装它我收到以下错误: > [2013-02-25 10:09:24] make CC = /usr/local/bin/gcc-4.2 LD = ld > LDSHARED = /usr/local/bin/gcc-4.2 -dynamic -bundle CFLAGS = -O3 > -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration -pipe XCFLAGS = -include ruby/config.h -include ruby/missing.h -D_FORTIFY_SOURCE=2 > -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -I/usr/local/opt/libyaml/include […]

Ruby流tar / gz

基本上我想将数据从内存流式传输到tar / gz格式(可能是多个文件到tar中,但它永远不应该触及HARDDRIVE,只能流式传输!),然后将它们传输到其他地方(在我的情况下是一个HTTP请求体)。 有人知道现有的库可以做到这一点吗? Rails中有什么东西吗? libarchive-ruby只是一个C包装器,看起来它非常依赖于平台(文档希望你编译为安装步骤?!)。 解: require ‘zlib’ require ‘rubygems/package’ tar = StringIO.new Gem::Package::TarWriter.new(tar) { |writer| writer.add_file(“a_file.txt”, 0644) { |f| (1..1000).each { |i| f.write(“some text\n”) } } writer.add_file(“another_file.txt”, 0644) { |f| f.write(“some more text\n”) } } tar.seek(0) gz = Zlib::GzipWriter.new(File.new(‘this_is_a_tar_gz.tar.gz’, ‘wb’)) # Make sure you use ‘wb’ for binary write! gz.write(tar.read) tar.close gz.close 而已! […]

Ruby:如何检测/智能猜测CSV文件中使用的分隔符?

我需要能够在我的Ruby项目中找出csv文件(逗号,空格或分号)中使用的分隔符。 我知道,csv模块中的Python中有一个Sniffer类可用于猜测给定文件的分隔符。 Ruby中有类似的东西吗? 非常感谢任何forms的帮助或想法。