我有两张桌子 - Training_Assessments:id,name - 标准:id,name,training_assessment_id,parent_id
Model Standards
class Standard < ApplicationRecord
ATTRIBUTE_PARAMS = %i(id name proportion parent_id).freeze
belongs_to :training_assessment
has_closure_tree
end
Model TrainingAssessment
class TrainingAssessment < ApplicationRecord
ATTRIBUTE_PARAMS =
[
:id, :name,
standards_attributes: Standard::ATTRIBUTE_PARAMS
].freeze
has_many :standards, dependent: :destroy
accepts_nested_attributes_for :standards, allow_destroy: true
end
我的一个培训评估有很多标准,每个标准都有很多子标准,父母标准有parent_id。我尝试在控制台创建,但子标准没有嵌套训练评估的ID。 那么我怎么做呢? params结构如何?
答案 0 :(得分:0)
您需要从模型中的一个标准到其父标准的关联:
belongs_to :parent_standard, foreign_key: :parent_id
然后你可以委派:
delegate :training_assessment, to: :parent_standard
编辑:
使用closure_tree gem:child.root.training_assessment_id
是父母training_assessment_id