私は2つのテーブルがあります - Training_Assessments:ID、名前 - 規格: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
1つの訓練評価には多くの基準がありますが、各標準には親基準のparent_idを持つ多くの子標準があります。私はコンソールで作成しようとしましたが、子供の標準では、トレーニング評価のIDがネストされていません。 だから私はそれをどのようにすることができますか?そしてparamsの構造はどうですか?
回答:
回答№1は0あなたのモデルでは、ある標準から親基準までの関連が必要です。
belongs_to :parent_standard, foreign_key: :parent_id
次に、委任することができます:
delegate :training_assessment, to: :parent_standard
編集:
closure_tree gemを使う: child.root.training_assessment_id
両親の訓練_assessment_idです