Tag: ruby

在Ruby中编写二进制文件

是否有一种简单的方法将二进制数据写入二进制文件,就像我们在C / C ++中所做的那样? 例如,如何在不使用花哨数学的情况下创建具有序列化4字节整数值的4字节文件?

无法访问RubyGems – 可能是由于SSL?

这里有新的Ruby on Rails,只是尝试安装和设置。 我正在按照本指南开始如何入门。 但是,当我进入3.2创建博客应用程序时,我在运行rails new blog时遇到了一个问题。 当我尝试这个时,我得到一个错误 安装rake 10.4.2时发生错误,Bundler无法继续。 在捆绑之前确保’gem install rake -v ’10 .4.2”成功。 所以,当我尝试运行该命令时,我收到此错误: 错误:找不到有效的gem’rake’:无法从https://rubygems.org/下载数据 – SSL_connect返回= 1 errno = 0 state = SSLv3读取服务器证书B:证书validation失败 谷歌搜索后,我找到了这个指南 。 在诊断部分,我尝试运行openssl version ,但没有用。 我安装了OpenSSL并将其添加到我的路径中。 但是,当我尝试获取任何gem时,我仍然会遇到同样的错误。 我也无法ping ruby​​gems.org – 什么都没有回来。 我使用的是Windows 7,Rails 4.1.8,Ruby 2.0.0p598,RubyGems 2.0.14和OpenSSL 1.01j。 任何帮助将不胜感激!

ActionView :: Template :: Error(不兼容的字符编码:UTF-8和ASCII-8BIT)

我使用Ruby 1.9.2,Rails 3.0.4 / 3.0.5和Phusion Passenger 3.0.3 / 3.0.4。 我的模板是用HAML编写的,我使用的是MySQL2 gem。 我有一个控制器动作,当传递一个具有特殊字符的参数,如变音符号,给我以下错误: ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT) 该错误指向我的HAML模板的第一行,其中包含以下代码: 我的理解是,这是因为我有一个UTF-8字符串与ASCII-8BIT字符串连接,但我不能在我的生活中弄清楚ASCII-8BIT字符串是什么。 我已经检查过动作中的参数是用UTF-8编码的,我已经添加了一个编码:UTF-8声明到HAML模板的顶部和ruby文件,我仍然得到这个错误。 我的application.rb文件中也有一个config.encoding = “UTF-8″声明,以下所有结果都是UTF-8: ENV[‘LANG’] __ENCODING__ Encoding.default_internal Encoding.default_external 这是踢球者:我无法在开发或生产中使用独立乘客或杂种在我的Mac-OSX上本地重现此结果。 我只能在linux上运行nginx + passenger的生产服务器上重现它。 我已经在生产服务器的控制台中validation了后面提到的命令都是UTF-8的结果。 您是否遇到过同样的错误?您是如何解决的?

在Ruby中为什么不会`foo = true除非定义?(foo)`进行赋值?

这里发生了什么? 两种forms“除非”之间的细微差别是什么? > irb(main):001:0> foo = true unless defined?(foo) => nil irb(main):002:0> unless defined?(fooo) ; fooo = false ; end => false 谢谢

如何拦截ruby中的方法调用?

我目前有一个超类,它有一个函数,我希望所有的子类都在它的每个函数中调用。 该函数应该像rails中的before_filter函数一样,但我不确定如何实现before_filter。 这是一个例子 class Superclass def before_each_method puts “Before Method” #this is supposed to be invoked by each extending class’ method end end class Subclass < Superclass def my_method #when this method is called, before_each_method method is supposed to get invoked end end

Ruby中有goto语句吗?

有没有办法从指定的行开始,比如goto语句?

Ruby 1.9.2如何在Windows上安装RMagick?

我目前正在升级旧的rails应用程序以使用Rails 3和Ruby 1.9.2,而RMagick是我需要安装的最后一个gem。 但是,Windows似乎没有任何1.9.2下载,标准的gem安装RMagick也不起作用。 有人能指出我如何安装这个gem的正确方向吗?

从字符串中删除重音符号/变音符号,同时保留其他特殊字符(尝试过mb_chars.normalize和iconv)

有一个非常类似的问题 。 其中一个解决方案使用如下代码: string.mb_chars.normalize(:kd).gsub(/[^x00-\x7F]/n, ”).to_s 哪个有奇效,直到你注意到它还会删除空格,圆点,短划线以及谁知道还有什么。 我不是很确定第一个代码是如何工作的,但它是否可以仅删除重音? 或者至少要给出一个要保留的字符列表? 我对regexp的了解很少,但我尝试过(无济于事): /[^\-x00-\x7F]/n # So it would leave the dash alone 我要做这样的事情: string.mb_chars.normalize(:kd).gsub(‘-‘, ‘__DASH__’).gsub (/[^x00-\x7F]/n, ”).gsub(‘__DASH__’, ‘-‘).to_s 残暴? 是… 我也尝试过: iconv = Iconv.new(‘UTF-8’, ‘US-ASCII//TRANSLIT’) # Also tried ISO-8859-1 iconv.iconv ‘Café’ # Throws an error: Iconv::IllegalSequence: “é” 请帮忙?

RVM和瘦,root与本地用户

所以我试图通过RVM作为服务运行。 在thin install我在运行config命令时手动更新/etc/init.d/thin以使用su – user ,以便瘦作为本地用户而不是root用户运行。 到现在为止还挺好。 现在,当我尝试sudo service thin start ,看起来它正在尝试使用非RVM版本的Ruby(1.8.7开始时安装在盒子上)来实际执行命令。 我在非RVM版本上做了一个gem install thin ,然后我得到了一个uninitialized constant Bundler消息–Bundler只安装在RVMgem中,而不是系统gem。 看起来我无法设置RVM环境(即使我的RVM启动脚本在〜/ .bashrc中,然后包含在〜/ .bash_profile中)。 我想要做的就是使用RVM环境而不是系统环境作为服务运行。 这有可能吗? 我应该放弃并承诺以root身份运行一切的最终罪行吗? 这一点非常诱人。 谢谢你的帮助!

停止设置清除会话

当用户通过标准Devise控制器注销时,Devise会破坏整个会话存储,而不仅仅是它自己的数据。 有什么方法可以避免这种行为吗? 我还有其他不相关的数据应该保留。 session[:my_var] = “123” 通过设计退出… puts session[:my_var] # => nil