Questions tagged «ruby»

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

7
Ruby类实例变量与类变量
我读了“ 何时设置Ruby实例变量? ”,但是当使用类实例变量时,我有两个想法。 类变量由类的所有对象共享,实例变量属于一个对象。如果我们有类变量,那么使用类实例变量的空间就不多了。 有人可以解释这两者之间的区别以及何时使用它们吗? 这是一个代码示例: class S @@k = 23 @s = 15 def self.s @s end def self.k @@k end end p S.s #15 p S.k #23 我现在知道,类实例变量没有沿继承链传递!


8
``json''本机gem需要安装的构建工具
我已经ruby 1.9.2p180 (2011-02-18) [i386-mingw32]在Windows 7机器上安装了。现在,我尝试使用命令“ gem install json”安装JSON gem,并收到以下错误。 ERROR: Error installing JSON: The 'json' native gem requires installed build tools. Please update your PATH to include build tools or download the DevKit from '[http://rubyinstaller.org/downloads][1]' and follow the instructions at '[http://github.com/oneclick/rubyinstaller/wiki/Development-Kit][2]' 然后我去下载了DevKit-4.5.0-20100819-1536-sfx.exe。将其提取到C:\ DevKit。然后从命令提示符处执行以下命令。 ruby dk.rb init 执行以上命令后,我验证了config.yaml的生成,并且它具有我的ruby文件夹的路径自动添加。这是config.yaml文件“-C:/ Ruby192”底部的行 ruby dk.rb …
178 ruby  json  windows-7  rubygems 




13
在OSX中卸载所有已安装的gem?
在某些情况下,我想还原并卸载所有以前的gem安装。 例如,我需要帮助一个朋友迁移他们的Rails开发机器以使用RVM。由于他们以前在整个系统中使用过gem,所以在处理多个项目时,他遇到了许多麻烦。 本质上,他是RVM转换的后代。 如何优雅地卸载他的OSX系统上的所有gem?
177 ruby  rubygems 


7
如何将新项目添加到哈希
我是Ruby的新手,不知道如何将新项目添加到已经存在的哈希中。例如,首先我构造哈希: hash = {item1: 1} 之后,要添加item2,因此在此之后,我将得到如下哈希: {item1: 1, item2: 2} 我不知道对哈希执行哪种方法,有人可以帮我吗?
176 ruby  hash 


18
处理Rail中STI子类的路线的最佳实践
我的Rails视图和控制器上到处是redirect_to,link_to和form_for方法调用。有时link_to,redirect_to并且在链接的路径中是显式的(例如link_to 'New Person', new_person_path),但是很多时候路径是隐式的(例如link_to 'Show', person)。 我在模型中添加了一些单表继承(STI)(例如Employee < Person),所有这些方法都破坏了子类的实例(例如Employee);当rails执行时link_to @person,它会出错undefined method employee_path' for #<#<Class:0x000001022bcd40>:0x0000010226d038>。Rails正在寻找由对象的类名(即员工)定义的路线。这些员工路线未定义,也没有员工控制者,因此也未定义操作。 之前已经问过这个问题: 在StackOverflow上,答案是编辑整个代码库中的每个link_to等实例,并明确声明路径 再次在StackOverflow上,两个人建议使用routes.rb来将子类资源映射到父类(map.resources :employees, :controller => 'people')。在同一SO问题中的最高答案建议使用以下方法对代码库中的每个实例对象进行类型转换.becomes 在StackOverflow上,另一个答案是,“做自己重复做”阵营中的方法,并建议为每个子类创建重复的脚手架。 在SO中,这又是同样的问题,其中最高答案似乎是错误的(Rails magic Just Works!) 在网络上的其他地方,我发现了此博客文章,F2Andy建议在代码中的所有路径中进行编辑。 在博客文章Logical Reality Design上的Single Table Inheritance和RESTful Routes上,建议将子类的资源映射到超类控制器,如上面的SO答案2所示。 Alex Reisner在Rails中发表了“单表继承”一文,他主张不要将子类的资源映射到父类中routes.rb,因为这只会从link_to和redirect_to而不是从中捕获路由中断form_for。因此,他建议改为在父类中添加一个方法,以使子类位于其类周围。听起来不错,但是他的方法给了我错误undefined local variable or method `child' for #。 所以这似乎是最优雅,拥有最共识(但不是所有的答案是优雅的,也不是太大的共识),是资源添加到您的routes.rb。除非这不适用于form_for。我需要澄清!为了提炼以上选择,我的选择是 将子类的资源映射到超类的控制器中routes.rb(并希望我不需要在任何子类上调用form_for) 重写rails内部方法以使类相互说谎 在代码中编辑每个实例,以隐式或显式调用对象操作的路径,从而更改路径或类型转换对象。 鉴于所有这些矛盾的答案,我需要裁决。在我看来,没有好的答案。这是滑轨设计的失败吗?如果是这样,它是否可以修复?如果不是这样,那么我希望有人可以让我直接理解这一点,带我逐步了解每种选择的优缺点(或解释为什么这不是一种选择),以及哪个是正确的答案以及为什么。还是我在网上找不到合适的答案?

1
(一元)*运算符在此Ruby代码中做什么?
给定Ruby代码 line = "first_name=mickey;last_name=mouse;country=usa" record = Hash[*line.split(/=|;/)] 除了*操作员以外,我在第二行中了解所有内容 -它在做什么,相关文档在哪里?(您可能会猜到,搜索这种情况非常困难...)
174 ruby  operators  splat 

5
检查Rails中是否存在表
我有一个rake任务,除非存在一个表,否则该任务将无法工作。我正在与一个网站上的20多位工程师合作,因此我想确保他们已经迁移了表,然后他们才能执行瑞克任务,该任务将填充相应的表。 AR是否有诸如此类的方法Table.exists?如何确保他们已成功迁移表?

14
在RSpec中测试模块
在rspec中测试模块的最佳实践是什么?我有一些模块包含在少数几个模型中,现在我只对每个模型进行重复测试(几乎没有差异)。有办法干燥吗?
174 ruby  unit-testing  rspec 

3
使用RVM安装了Ruby 1.9.3,但命令行未显示ruby -v
这是控制台输出: sergio@sergio-VirtualBox:~$ rvm list rvm rubies ruby-1.9.3 [ i386 ] sergio@sergio-VirtualBox:~$ rvm use 1.9.3 Using /usr/share/ruby-rvm/gems/ruby-1.9.3 sergio@sergio-VirtualBox:~$ ruby -v The program 'ruby' can be found in the following packages: * ruby1.8 * ruby1.9.1 Try: sudo apt-get install <selected package> 发生什么了?我需要重启机器吗?还是应该立即发挥作用?我正在使用Ubuntu 11.10,希望能提供任何帮助。
173 ruby  ubuntu  rvm 

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.