在STI子类上使用嵌套属性时未初始化的常量

时间:2014-09-03 04:48:58

标签: ruby-on-rails associations nested-attributes sti

我有一个名为User的类/模型(使用单表继承)有一个名为Student的子类(包括其他)

学生与'HomeAddress'有'has_one'关联,'HomeAddress'是'Place'的子类

我的模型设置:

class User < ActiveRecord::Base
end

class Student < User
    has_one :home_address, :dependent => :destroy
    accepts_nested_attributes_for :home_address
end

class Place < ActiveRecord::Base
end

class HomeAddress < Place
    belongs_to :student
end

在我的学生控制器中,我正在尝试创建一个新的学生和相关的HomeAddress以传递到我的视图:

class StudentsController < ApplicationController

def new

@student = Student.new
@student.build_home_address

end

然而,我收到一个错误:

:uninitialized constant Student::HomeAddress

这个问题显然与 @ student.build_home_address 行有关,但我不明白为什么会导致此错误。我检查了所有命名约定(即模型,控制器,关联),并在我的应用程序中使用其他嵌套属性关系。使用STI子类的嵌套属性可能存在问题? (即HomeAddress)

如果您想查看其他任何代码,请与我们联系。 感谢。

0 个答案:

没有答案