0

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

但是尽管 Rails 中的大多数东西都很容易做,但有时 .net 中容易做的小事情会让你在 Rails 中发疯。

我有一个 Rails 应用程序,我只是想添加一个类。并在我的控制器中使用它。此类仅用于保存数据。不是来自数据库。只是一个简单的类供我使用

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

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

这仍然不起作用..所以我将我的类文件放在常规模型文件夹中。但它似乎仍然无法正常工作这是我的课程代码:

   class Person
    attr_accessor :name, :role

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

     end

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

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

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

有什么大不了的?..为什么将公共类添加到项目中如此复杂?谢谢

4

2 回答 2

3

您必须要求指定类的 .rb 文件,您可以使用“require”或“require_relative”来做到这一点:

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

于 2012-09-26T11:03:29.200 回答
1

在 Rails.root 中启动控制台:

rails c

只需引用类名:

Person

你看到了什么?

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

puts $:.join("\n")

最后,暴力破解它可能会为您提供有关该问题的更多信息:

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

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

于 2012-09-26T11:08:53.617 回答