0

我有一张名为“Wbs”的表。我已经生成了从命令行执行时可以正常工作的控制器。

例子:

Wbs

Wbs(id: integer, description: string, project_id: integer, wbs_no: string, published: boolean, created_at: datetime, updated_at: datetime))

问题是当我尝试返回给定项目的所有 Wbs 对象时。Rails 从 wbs 中删除 's' 并尝试调用一个名为“Project::Wb”而不是“Project::Wbs”的方法。

例子:

项目.first.wbs

项目加载 (0.4ms) SELECT "projects".* FROM "projects" LIMIT 1 NameError: uninitialized constant Project::Wb

我确实在各自的模型中设置了belong_to 和has_many。

我该如何解决这个问题?

4

2 回答 2

0

我认为,您应该告诉 Rails 您的模型名称与预期的不同。你可以这样做:

has_many :wbs, :class_name => "Wbs"
于 2012-07-04T15:41:03.287 回答
0

您可以指定 "wbs" 是不可数的。补充config/initalizers/inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.uncountable "wbs"
end

之后您必须重新启动服务器/控制台。

于 2012-07-04T16:19:04.427 回答