Questions tagged «ruby»

Ruby是由松本行弘(Matz)于1995年创建的一种多平台开放源代码,动态的,面向对象的解释性语言。[ruby]标记用于与Ruby语言有关的问题,包括其语法和库。Ruby on Rails问题应标记为[ruby-on-rails]。


18
gem install:无法构建gem本机扩展(找不到头文件)
我正在使用Fedora 14,并且已安装并正在运行MySQL和MySQL服务器5.1.42。现在,我尝试以root用户身份执行此操作: gem install mysql 但是我得到这个错误: Building native extensions. This could take a while... ERROR: Error installing mysql: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection. Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out 怎么了 …
356 mysql  ruby  rubygems 

7
我应该使用alias还是alias_method?
我在aliasvs 上找到了一篇博客文章alias_method。如该博客文章中给出的示例所示,我只想在同一个类中为另一个方法别名。我应该使用哪个?我总是看到alias用过,但是有人告诉我alias_method更好。 别名的用法 class User def full_name puts "Johnnie Walker" end alias name full_name end User.new.name #=>Johnnie Walker alias_method的用法 class User def full_name puts "Johnnie Walker" end alias_method :name, :full_name end User.new.name #=>Johnnie Walker 博客文章链接在这里
353 ruby  alias 


9
Ruby:从实例调用类方法
在Ruby中,如何从该类的实例之一调用类方法?说我有 class Truck def self.default_make # Class method. "mac" end def initialize # Instance method. Truck.default_make # gets the default via the class's method. # But: I wish to avoid mentioning Truck. Seems I'm repeating myself. end end 该行将Truck.default_make检索默认值。但是,有一种不用说的说法Truck吗?似乎应该有。
347 ruby  class-method 

8
Rails:include与。:joins
这更多是“为什么事情会这样工作”的问题,而不是“我不知道如何做到”的问题。 因此,使用有关拉取您知道将要使用的关联记录的福音是有用的,:include因为您将获得联接并避免了很多额外的查询: Post.all(:include => :comments) 但是,当您查看日志时,不会发生连接: Post Load (3.7ms) SELECT * FROM "posts" Comment Load (0.2ms) SELECT "comments.*" FROM "comments" WHERE ("comments".post_id IN (1,2,3,4)) ORDER BY created_at asc) 之所以采用捷径,是因为它可以一次提取所有注释,但是它仍然不是联接(所有文档似乎都在说)。我可以加入的唯一方法是使用:joins而不是:include: Post.all(:joins => :comments) 日志显示: Post Load (6.0ms) SELECT "posts".* FROM "posts" INNER JOIN "comments" ON "posts".id = "comments".post_id 我想念什么吗?我有一个具有六个关联的应用程序,并且在一个屏幕上显示所有关联的数据。似乎最好有一个联合查询而不是6个人。我知道从性能角度来看,执行联接而不是进行单个查询并不总是总好(实际上,如果按时间花费,看起来上面的两个查询比联接要快),但是毕竟是文档我一直在阅读,我很惊讶地发现它:include不能像广告中所说的那样工作。 也许Rails的是认识到性能问题,并除非在某些情况下,不加入呢?



12
在Ruby中遍历数组的“正确”方法是什么?
尽管有很多缺点,PHP在这一点上还是相当不错的。数组和哈希之间没有区别(也许我很天真,但这对我来说似乎显然是正确的),并且可以遍历任何一个 foreach (array/hash as $key => $value) 在Ruby中,有很多方法可以执行这种操作: array.length.times do |i| end array.each array.each_index for i in array 散列更有意义,因为我只是经常使用 hash.each do |key, value| 为什么我不能对数组执行此操作?如果我只想记住一种方法,我想我可以使用each_index(因为它使索引和值都可用),但是不得不这样做,array[index]而不是仅仅使人烦恼value。 哦,对,我忘了array.each_with_index。然而,这一次吮吸,因为它去|value, key|和hash.each去|key, value|!这不是疯了吗?
341 ruby  arrays  loops 



5
如何将ruby哈希对象转换为JSON?
如何将ruby哈希对象转换为JSON?所以我在下面尝试这个例子,它不起作用? 我当时在看RubyDoc,显然Hash对象没有to_json方法。但是我正在阅读Rails支持active_record.to_json并且也支持的博客hash#to_json。我可以理解ActiveRecord是一个Rails对象,但Hash不是Rails本身,它是一个纯Ruby对象。因此,在Rails中可以执行hash.to_json,但不能在纯Ruby中执行? car = {:make => "bmw", :year => "2003"} car.to_json

14
何时使用lambda,何时使用Proc.new?
在Ruby 1.8中,一方面proc / lambda之间存在细微的差异,另一方面Proc.new。 这些差异是什么? 您可以就如何决定选择哪一项提供指导吗? 在Ruby 1.9中,proc和lambda是不同的。这是怎么回事?
336 ruby  lambda  proc 

10
如何找到在运行时定义方法的位置?
我们最近遇到了一个问题,即在进行了一系列提交之后,后端进程无法运行。现在,我们是个不错的男孩和女孩,rake test每次登记后都跑了,但由于Rails的库加载有些奇怪,这种情况仅在我们以生产模式直接从Mongrel进行运行时发生。 我跟踪了该错误,这是由于一个新的Rails gem覆盖了String类中的一种方法,从而打破了运行时Rails代码中的一种狭义用法。 总之,长话短说,在运行时是否有办法询问Ruby在哪里定义了方法?这样的东西whereami( :foo )回来了/path/to/some/file.rb line #45吗?在这种情况下,告诉我它在String类中定义是没有帮助的,因为它被某些库重载了。 我不能保证源代码存在于我的项目中,因此grepping 'def foo'并不一定能提供我所需要的东西,更不用说我是否有很多东西 def foo,有时我直到运行时才知道我会使用哪个。

9
如何避免OSX上的自制软件“无法加载此类文件-utils / popen”
brew在终端中运行时出现错误 : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- utils/popen (LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/Library/Homebrew/utils.rb:6:in `<top (required)>' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/Library/Homebrew/global.rb:9:in `<top (required)>' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/Library/brew.rb:16:in `<main>' 这些是我的宝石设置: - RUBYGEMS VERSION: 2.0.14 - RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13] …
327 ruby  macos  rubygems  homebrew 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.