Tag: ruby

在Ruby on Rails中,要扩展String类,代码应该放在哪里?

如果在Ruby on Rails上,我需要添加一个名为 class String def capitalize_first # … end end 并想知道文件应该到哪里去? (哪个目录和文件名,是任何初始化代码需要?)这是一个Rails 3.0.6项目。

Ruby中的方法:对象与否?

受到这个讨论的启发,在googlesearch一下后,我无法find关于Ruby中的方法的一个非常简单的问题的答案:方法对象还是不是? 在这里和那里有不同的意见,我真的很想听到,比方说,深入的解释。 我知道Object#method方法,它采用一个方法名并返回一个Method实例,但另一方面,你可以用块做类似的事情,使它们成为Proc实例,块不是对象,那么什么使方法有所不同呢?

我如何在rails中validationdate?

我想在Ruby on Rails中的模型中validationdate,但是,date,月份和年份值在到达我的模型时已经转换为不正确的date。 例如,如果我在我的视图中input2009年2月31日,当我在我的控制器中使用Model.new(params[:model])时,它将其转换为“2009年3月3日”,我的模型将其视为有效date,这是,但它是不正确的。 我希望能够在我的模型中进行validation。 有什么方法可以,或者我是否完全错误? 我发现这个“ datevalidation ”,讨论这个问题,但它从来没有得到解决。

你已经激活了X,但是你的Gemfile需要Y.

运行rake我得到这个错误: 你已经激活了rake 0.9.2,但是你的Gemfile需要rake 0.8.7。 考虑使用bundle exec。 使用bundle exec rake而不是rake似乎是可行的,但这是解决这个问题的最好方法吗?

Rails 3:仍然使用alias_method_chain?

我刚刚阅读了关于Rails 3的Gems / Plugin开发,并跑过这篇文章 ,说alias_method_chain不再使用。 我可以看到activesupport-3.0.0 / lib / active_support / core_ext / module / aliasing.rb中的方法仍然存在。 我还应该在Rails 3中使用alias_method_chain吗? 这是否仍然反映了Rails 3中想要修改ActiveRecord的gems / plugins的最佳实践?

Rails .where和.find

我注意到Model.where方法总是返回一个数组,即使只有一个结果,因为Model.find方法没有。 这有什么理由吗? 我以为Model.where是自Rails 3.X以来的首选函数。 当我期望单个结果和Model.where时我应该使用Model.find ,当我期望多于一个结果?

Ruby:如何查找出现次数最多的数组?

[1, 1, 1, 2, 3].mode => 1 ['cat', 'dog', 'snake', 'dog'].mode => dog

如何在ruby中实现一个抽象类?

我知道ruby中没有抽象类的概念。 但是,如果一切都需要执行,怎么去做呢? 我尝试了一些… class A def self.new raise 'Doh! You are trying to write Java in Ruby!' end end class B < A … … end 但是当我尝试实例化B时,它将在内部打电话给A.new ,这将引发exception。 而且,模块不能被实例化,但是它们也不能被inheritance。 使新的方法私人也将无法正常工作。 任何指针?

如何从Ruby数组创build平均值?

如何从数组中find平均值? 如果我有arrays: [0,4,8,2,5,0,2,6] 平均会给我3.375。 谢谢!

在Ruby中显式返回是不错的风格吗?

来自Python背景,在风格方面总是有一个“正确的方式去做”(“Pythonic”方式),我想知道Ruby是否也存在。 我一直在使用自己的风格指南,但是我正在考虑发布我的源代码,我希望它遵守任何可能存在的不成文规则。 是“Ruby途径”明确键入方法return ? 我已经看到它完成了,但有没有一个正确的方法来做到这一点? 有没有适当的时间去做? 例如: def some_func(arg1, arg2, etc) # Do some stuff… return value # <– Is the 'return' needed here? end