首页 > 解决方案 > 为什么 has_many 关系不存在 create_* 方法?

问题描述

我有以下型号:

class Post < ApplicationRecord
  has_many :metrics
end

class Metric < ApplicationRecord
  belongs_to :post
end

我想知道为什么create_metricspost 实例中没有方法。如果关系是:

class Post < ApplicationRecord
  has_one :metric
end

class Metric < ApplicationRecord
  belongs_to :post
end

在 post 实例中会有一个方法create_metric

标签: ruby-on-rails

解决方案


这里指定了一个 collection.create 方法:https ://guides.rubyonrails.org/association_basics.html#methods-added-by-has-many-collection-create-attributes

在这种特殊情况下,您可以调用:

@metric.posts.create

并使用您想要的数据传递一个对象数组。


推荐阅读