1

尝试通过 rails 控制台定位模型

>> f = DBFile.find_by_id(1)
>> NameError: uninitialized constant DBFile
>> D_B_File.all()
LoadError: Expected /home/thrive/rails_projects/tester/app/models/d_b_file.rb to define D_B_File
>> f = DBFile.find_by_id(1)
#<DBFile id: 1, file_name: "output-May-2010.csv">

现在当我重命名模型 d_b_file.rb >> db_file.rb

>> f = DBFile.find_by_id(1)
#<DBFile id: 1, file_name: "output-May-2010.csv">

那么原始模型名称中的附加下划线......阻止它正常加载呢?

4

1 回答 1

1

问题是文件名与类名直接相关,因为 Rails 依赖于它来确定它应该在哪里查找类。

所以,"DBFile".underscore会给你db_file。这就是 Rails 期望找到该类的地方。

于 2012-09-17T14:35:20.733 回答