嗨,我知道我是铁杆新手。 我来自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
有什么大不了的?为什么在项目中添加公共类这么复杂? 感谢
答案 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自动加载魔法。