Rails为Ruby类问题添加方法

时间:2012-08-02 08:44:03

标签: ruby-on-rails ruby

我在:

ruby-1.9.3-p194
Rails 3.0.9

我想在我的视图方法 percent_of 中使用数字数据类型。

例如,<%= 10.persent_of(50) %>它等于20%

为此,我创建了包含

lib/numeric.rb文件
class Numeric
  def percent_of(n)
    self.to_f / n.to_f * 100.0
  end
end

但我收到了一个错误:

undefined method `percent_of' for 10:Fixnum

我试图添加定义require 'Numeric',但它对我没有帮助。

帮帮我。

2 个答案:

答案 0 :(得分:1)

请尝试使用require 'numeric'。你需要的是文件而不是课程。

答案 1 :(得分:1)

检查config.autoload_paths += %W(#{config.root}/lib)文件中是否有application.rb。你应该扩展Fixnum而不是Numeric:

class Fixnum
  def percent_of(n)
    self.to_f / n.to_f * 100.0
  end
end

然后在application_helper.rb中要求或包含它,以便它可供所有视图使用:

require 'numeric'include Numeric