重命名 has_many 中的关联

Noa*_* B. 2 ruby-on-rails

我有模型 Course 和模型 CourseUnitRole。

一门课程有许多课程单元角色。

我定义:

has_many :course_unit_roles
Run Code Online (Sandbox Code Playgroud)

所以 course.course_unit_roles 为我提供了我需要的一切。

但我想将关联更改为:course.unit_roles。

我尝试添加:

has_many :unit_roles, :through => :course_unit_roles
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误。

哪里有问题?

Мал*_*евъ 5

要重命名has_many功能,只需重命名其名称,但您还应该隐式指定要与之交互的记录的类名称。所以:

has_many :unit_roles, class_name: :CourseUnitRole
Run Code Online (Sandbox Code Playgroud)

  • 它应该是 `has_many :unit_roles, class_name: 'CourseUnitRole'` (3认同)