【发布时间】:2016-01-03 01:27:55
【问题描述】:
#
这是我的创建操作
@school = current_user.create_school(school_params)
在我的模型定义中
user has_one profileprofile has_many schools
【问题讨论】:
标签: ruby-on-rails associations nested-resources
#
这是我的创建操作
@school = current_user.create_school(school_params)
在我的模型定义中
user has_one profileprofile has_many schools
【问题讨论】:
标签: ruby-on-rails associations nested-resources
user 和 school 之间没有关系。
如果user 有多个schools,那么您可以使用以下方法创建关联实例
current_user.schools.create(school_params)
如果user 有一个school,那么您使用create_association
current_user.create_school(school_params)
【讨论】:
根据经验,每当您在模型上运行关联方法时(通常是 build 或 create),方法的名称取决于关联的复数...复数关联需要 @987654327 @,单数关联需要create_association:
belongs_to ref(特别是关于create_):
当你声明一个 belongs_to 关联时,声明类 自动获取关联相关的五个方法:
- 关联(force_reload = false)
- association=(关联)
- build_association(属性 = {})
- create_association(属性 = {})
- create_association!(属性 = {})
--
has_many ref(特别是关于.create):
当你声明一个 has_many 关联时,声明类 自动获取关联相关的16个方法:
- 集合(force_reload = false)
- ...
- collection.build({})
- collection.create(attributes = {})
- collection.create!(attributes = {})
因此,如果您使用has_many 关联,则需要使用x.create:
@school = current_user.schools.create school_params
【讨论】: