Ruby on rails 我应该把这个矩阵类放在rails应用程序的什么地方

Ruby on rails 我应该把这个矩阵类放在rails应用程序的什么地方,ruby-on-rails,matrix,Ruby On Rails,Matrix,我希望使用如下所示的矩阵类: http://rosettacode.org/wiki/Cholesky_decomposition#Ruby 在我的rails应用程序中。我已将该类复制到lib/matrix.rb中 在我的查看页面中,我尝试使用以下代码测试此类: <%= Matrix[[25,15,-5],[15,18,0],[-5,0,11]].cholesky_factor %> 我做错什么了吗?(我在lib/matrix.rb中也有require'matrix'行)我认为问

我希望使用如下所示的矩阵类:

http://rosettacode.org/wiki/Cholesky_decomposition#Ruby
在我的rails应用程序中。我已将该类复制到lib/matrix.rb中

在我的查看页面中,我尝试使用以下代码测试此类:

<%= Matrix[[25,15,-5],[15,18,0],[-5,0,11]].cholesky_factor %>

我做错什么了吗?(我在lib/matrix.rb中也有require'matrix'行)

我认为问题在于lib/matrix.rb中的lib/matrix.rb从不读取。如果您使用的是Rails 3,则dir目录中的文件不会自动加载。按照中的建议,在application.rb中添加以下行并重新启动服务器:

config.autoload_paths += Dir["#{config.root}/lib/**/"] # include all subdirectories

lib/matrix.rb
中删除
require'matrix'

重命名为
lib/extend_matrix.rb
,这样我们就可以专门加载它了

config/application.rb
中:

require File.expand_path('../boot', __FILE__)
require 'rails/all'

require 'matrix' # <-- moved here

#...bundler stuff...

module MyApp # <-- don't overwrite this!
  class Application < Rails::Application
     # ...
    config.autoload_paths << "#{::Rails.root.to_s}/lib" # <-- set path
    require "extend_matrix" # <-- forcibly load your matrix extension
  # ...
需要文件。展开路径('../boot',文件)
需要“rails/all”

需要“matrix”#谢谢我重新启动了服务器,但仍然收到相同的错误谢谢你的建议,当我尝试使用一个简单的函数,但不使用matrix类时,它可以工作。我想我扩展内置矩阵类的方式一定有问题
require File.expand_path('../boot', __FILE__)
require 'rails/all'

require 'matrix' # <-- moved here

#...bundler stuff...

module MyApp # <-- don't overwrite this!
  class Application < Rails::Application
     # ...
    config.autoload_paths << "#{::Rails.root.to_s}/lib" # <-- set path
    require "extend_matrix" # <-- forcibly load your matrix extension
  # ...