Ruby on rails 3 rails中的未初始化常量?
因此,我构建了一个新的controller=“Categories\u controller.rb”和一个新的Model=“Category.rb”,现在我通常使用我的Savedfriend.rb模型,并将其与Category.rb模型一起使用,就像这样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惯例,如果您没有在关联上指定您的类名,它将为类名寻找一个单一的、骆驼化的关联名版本。例如,如果您有一个模型
<%= 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