新的铁路。在尝试添加一个类并使用它时会发疯

时间:2012-09-26 10:49:13

标签: ruby-on-rails ruby-on-rails-3 netbeans-7

嗨,我知道我是铁杆新手。 我来自ASP.Net mvc

但是虽然铁轨中的大多数东西很容易做到,但有时候.net中容易出现的小东西会让你在铁轨上疯狂。

我有一个rails应用程序,我只是想尝试添加一个类。并在我的控制器中使用它。这个类只用于保存数据。不是来自db。对我来说只是一个简单的课程

所以我首先在“/ libs / assests”文件夹中添加了类文件。然后我读了我需要在application.rb文件中添加一行,说明从那里加载文件 所以我做了..

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

这仍然无效.. 所以我把我的类文件放在常规的Models文件夹中。但它似乎仍然无法正常工作 这是我的班级代码:

   class Person
    attr_accessor :name, :role

      def initialize(name, role)
         @name = name
         @role = role
      end

     end

并且在我的一个控制器中尝试这样做:

Person.new("name", "worker");

但我收到此错误: 未初始化的常量MainController :: Person

有什么大不了的?为什么在项目中添加公共类这么复杂? 感谢

2 个答案:

答案 0 :(得分:3)

您必须要求指定类的.rb文件,您可以使用“require”或“require_relative”来执行此操作:

http://rubylearning.com/satishtalim/including_other_files_in_ruby.html

答案 1 :(得分:1)

在你的Rails.root中启动控制台:

rails c

只需引用班级名称:

Person

你看到了什么?

不知道更多,看起来您的加载路径可能不正确。看看那里有什么:

puts $:.join("\n")

最后,强制它可能会为您提供有关该问题的更多信息:

require Rails.root.join("app","models", "person")

这会手动加载文件并跳过rails自动加载魔法。