对于#<未定义的方法`create_school'用户:0xb4e407a0>
这是我的创建动作
@school = current_user.create_school(school_params)
在我的模型定义中
user has_one profile
profile has_many schools
答案 0 :(得分:1)
user
和school
之间没有任何关系。
如果user
有多个schools
,那么您可以使用
current_user.schools.create(school_params)
如果user
有一个school
,那么您使用create_association
current_user.create_school(school_params)
答案 1 :(得分:0)
根据经验,无论何时在模型上运行关联方法(通常为build
或create
),方法的名称取决于多个关联...复数关联需要association.create
,单数关联需要create_association
:
belongs_to
ref(特别是关于create_
):
当您声明belongs_to关联时,声明类 自动获得与协会相关的五种方法:
- association(force_reload = false)
- 关联=(准)
- build_association(attributes = {})
- create_association(attributes = {})
- create_association!(attributes = {})
-
has_many
ref(特别是关于.create
):
当您声明has_many关联时,声明类 自动获得与该关联相关的16种方法:
- collection(force_reload = false)
- ...
- collection.build({})
- collection.create(attributes = {})
- collection.create!(attributes = {})
因此,如果您使用has_many
关联,则需要使用x.create
:
@school = current_user.schools.create school_params