Ruby on rails 3 rails中的未初始化常量?

Ruby on rails 3 rails中的未初始化常量?,ruby-on-rails-3,Ruby On Rails 3,因此,我构建了一个新的controller=“Categories\u controller.rb”和一个新的Model=“Category.rb”,现在我通常使用我的Savedfriend.rb模型,并将其与Category.rb模型一起使用,就像这样 <%= category.savedfriends.size %> 这快把我逼疯了。我的模型都设置了“属于”.按照Rails惯例,如果您没有在关联上指定您的类名,它将为类名寻找一个单一的、骆驼化的关联名版本。例如,如果您有一个模型

因此,我构建了一个新的controller=“Categories\u controller.rb”和一个新的Model=“Category.rb”,现在我通常使用我的Savedfriend.rb模型,并将其与Category.rb模型一起使用,就像这样

<%= category.savedfriends.size %>

这快把我逼疯了。我的模型都设置了“属于”.

按照Rails惯例,如果您没有在关联上指定您的
类名
,它将为类名寻找一个单一的、骆驼化的关联名版本。例如,如果您有一个模型
SavedFriend
,则您的关联应命名为
saved\u friends
。如果找不到关联的类,Rails倾向于在试图调用它的类中查找作用域类。这个错误有点晦涩难懂,但当我的联想中出现拼写错误时,我已经看到过很多次了

# in app/models/saved_friends.rb
class SavedFriend < ActiveRecord::Base
  belongs_to :category
end

# in app/models/category.rb
class Category < ActiveRecord::Base
  has_many :saved_friends
end
#在app/models/saved_friends.rb中
类SavedFriend

此外,如果您的文件和类命名方案像您的问题中那样零散,那么您的日子就不好过了。文件名应为小写并加下划线,类名应为文件名的简化版本。i、 e.
Categories\u controller.rb
应该是
Categories\u controller.rb
,类应该是
CategoriesController
。类似地,
saved_friend.rb
应该包含
class SavedFriend

我在问题中的文件命名错误,我的所有文件都是小写:)sorry@user2419316不仅仅是小写,每一个驼峰框都应该有下划线。经过编辑的答案可以更明确地说明约定和正确的声明。你说得对,我的
savedfriends
模型中有一个打字错误。。拥有
class SavedFriends
我需要的
class SavedFriends
。塔克斯!您的“SavedFriend”类是否正好位于
models
文件夹中,还是在其子文件夹中?
# in app/models/saved_friends.rb
class SavedFriend < ActiveRecord::Base
  belongs_to :category
end

# in app/models/category.rb
class Category < ActiveRecord::Base
  has_many :saved_friends
end