연관

0

통해 has_many에서 파라미터를 전달 I 내가 Testquestionorder의 열 값을 전달하고자하는 Test 생성시 클래스 Test, Question, Testquestionhas_many through연관

class Test 
    has_many :testquestions 
    has_many :questions, through: :testquestions 
end 

class Question 
    has_many :testquestions 
    has_many :tests, through: :testquestions 
end 

class Testquestion 
    belongs_to :test 
    belongs_to :questions 
end 

의해 관련이있다. 관련 모델 (Testquestion가) 업데이트됩니다 있도록

def create 
    Test.create(test_params) 
end 

def test_params 
    params.require(:test).permit(:testname,question_attributes:[:questionname]) 
end 

어떻게 order 컬럼의 값을 전달해야한다.

답변

1

이렇게하는 방법은 없습니다. 긴 경로를 취할 필요가 있습니다.

  1. 중첩 작업이 작업을 actualy 것이다 그래야, 당신의 assossiations에 accepts_nested_attributes_for를 추가하는 것을 잊지 마십시오.
  2. accepts_nested_attributes_for :question에서 Testquestion까지 추가했는지 확인하십시오.
  3. params 구조화 된 권리 얻기. 이 같은

뭔가 :

{ 
    test: { 
    testname: 'someName', 
    testquestion_attributes: { 
     order: someOrder, 
     question_attributes: { 
     questionname: 'someName' 
     } 
    } 
    } 
} 
  • 이 PARAMS 필요
      .

    params.require(:test).permit(:testname, testquestion_params: [:id, :order, :_destroy, question_params: [:id, :questionname])

    추신 sidenote : 실제로 필드와 변수의 이름을 snake_case, 클래스를 CamelCase으로 지정해야합니다.

  • +0

    매력처럼 작동합니다. 정말 고마워 –