我试图让我的轨道应用程序(2.3.5)运行在Ruby 1.9,我有这个函数,使一些string转换: def replace_special_chars(downcase = true) if downcase string = self.downcase else string = self end string.gsub! /á|ã|à|ä|â/, 'a' string.gsub! /é|è|ë|ê/, 'e' string.gsub! /í|ì|ï|î/, 'i' string.gsub! /ó|õ|ò|ô|ö/, 'o' string.gsub! /ú|ù|ü|û/, 'u' string.gsub! /ç/, 'c' string.gsub! /&/, 'e' string.gsub! /\s/, '-' string.gsub! /[^a-zA-Z_0-9-]/, '' string.gsub! /-(-)+/, '-' string end 但是,当我尝试启动服务器,我得到这个错误: <internal:lib/rubygems/custom_require>:29:in `require': /Users/…/lib/nzn_string.rb:11: invalid multibyte char […]
如何从下面的string创build一个Rubydate对象? DD-MM-YYYY
我有一个哈希 foo = {'bar'=>'baz'} 我想打电话给foo.bar #=> 'baz' 我的动机是将主动logging查询重写为原始sql查询(使用Model#find_by_sql)。 这将以SELECT子句值作为键返回一个散列。 但是,我现有的代码依赖于object.method点符号。 我想做最小的代码重写。 谢谢。 编辑:看来Lua有这个function: point = { x = 10, y = 20 } — Create new table print(point["x"]) — Prints 10 print(point.x) — Has exactly the same meaning as line above
我最近重新安装了ruby 2.1.2,因为我想安装一个gem( ruby-debug-ide ) sudo rvm reinstall 2.1.2 –disable-binary –with-gcc=gcc-4.2 从那以后,我无法使用bundle exec rails c加载我的控制台,原因如下: /Users/ohad/.rvm/gems/ruby-2.1.2@aaa/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require': dlopen(/Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle, 9): Library not loaded: @@HOMEBREW_PREFIX@@/opt/readline/lib/libreadline.6.dylib (LoadError) Referenced from: /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle 试过brew uninstall readline和brew install –build-from-source readline工作但没有解决我的问题。
在Rails 2.X中,我可以简单地将gem复制到vendor/gems/gem_name ,或者使用rake命令rake gems:unpack 。 由于Rails3使用捆绑器,它似乎不再工作。 我已经find了命令bundle package ,但是它不能以相同的方式工作。 编辑: 所以,只是想详细说明一下: 轨道2的工作方式,我可以很容易地findvendor/gems东西。 如果它们捆绑在.gem文件中,那是不可能的。 另外,在开发一个gem / plugin的时候,把它放在一个rails应用程序中来testing它是非常有用的。 我如何用bundler / rails3做这样的事情? 我的工作stream程是否以某种方式破坏了?
我试图在OSX 10.9的Rails项目中运行bundle 。 当遇到这个错误时,它失败了: Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/kyledecot/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config… no No pg_config… trying anyway. If building fails, please try again with –with-pg-config=/path/to/pg_config checking for libpq-fe.h… yes checking for libpq/libpq-fs.h… yes checking for pg_config_manual.h… yes checking for PQconnectdb() in -lpq… yes checking for PQconnectionUsedPassword()… yes checking for PQisthreadsafe()… […]
我有一个数组: [1,2,3,4,5,6,7,8,9,0] 我想每次迭代3次,这会产生 1,2,3 and 4,5,6 and 7,8,9 and 0 在Ruby中这样做的最好方法是什么?
什么时候使用Ruby的StringIO而不是使用String? 我想我理解它们之间的根本区别,就像“ 什么是ruby的StringIO类真的是什么? ”所强调的那样 ,StringIO使得能够以面向stream的方式读/写string。 但是这是什么意思呢? 什么是使用StringIO时使用StringIO的实际用法的一个很好的例子是不是真的会削减它?
我正在研究不同的优化技术,我遇到了这个post分析代码的效率? 由相信采样调用堆栈的人比使用探查器更有效。 其基本思想是,如果您查看调用堆栈,则可以看到应用程序最可能花费的大部分时间,然后在那里进行优化。 这当然是有趣的,他显然是这方面的专家,但我不知道如何查看ruby的调用堆栈。 在debugging器中,我可以说“信息堆栈”,但似乎只显示一行。 编辑:我看到了这个评论由迈克·邓拉维:“我只想指出,如果你在debugging器下运行,手动中断,并显示调用堆栈…” 我只是不知道如何手动中断它,并减less调用堆栈。
在Ruby中使用类文件时,是否将“require”语句放在文件的顶部,还是放在类定义中?