Rails API 중첩 속성에서 허용되지 않는 매개 변수

데이비드 플로레스

중첩 된 필드를 사용하여 개체를 업데이트하려고하는데 Unpermitted parameters오류가 발생합니다. 오류를 일으키는 필드 자체는 중첩 테이블 내의 다른 테이블과의 관계입니다. 다음은 세부 사항입니다.

닥터 클래스

class Doctor < User
    has_many :professional_licenses, dependent: :destroy
    has_many :states, through: :professional_licenses
    accepts_nested_attributes_for :professional_licenses, allow_destroy: true
   ...
end

전문 라이선스 클래스

class ProfessionalLicense < ApplicationRecord
  belongs_to :doctor
  belongs_to :state

  validates_presence_of :code
end

상태 클래스

class State < ActiveRecord::Base
  validates_presence_of :iso_abbr, :name
end

닥터 컨트롤러

...
def update
  doctor = @current_user
  params[:doctor][:professional_licenses_attributes].each do |license, index|
    license[:state] = State.find_by_iso_abbr license[:state]
  end
  doctor.update_attributes(doctor_params)
  render json: doctor, status: :ok
end
...
def doctor_params
  params.require(:doctor).permit(:email, :first_name, :last_name, :password, 
  :password_confirmation, professional_licenses_attributes: [:code, :state, :_destroy])
end

UI의 호출은 다음과 같습니다.

{
"doctor":{
    "first_name":"Doctor Postman",
    "professional_licenses_attributes": [
        {
            "code": "NY-1234",
            "state": "NY"
        },
        {
            "code": "MA-1234",
            "state": "MA"
        }
    ]
}
}

전화를 걸면 레코드가 업데이트되고 라이선스가 생성됩니다. 그러나 컨트롤러가라고 말하기 때문에 라이선스는 상태없이 생성됩니다 Unpermitted parameters: state. 나는 다른 접근법을 시도했지만 주를 허용하는 방법을 찾을 수 없습니다. 도와주세요!

Chumakoff

귀하의 경우 code매개 변수는 정수 또는 문자열과 같은 간단한 값이 될 것으로 예상됩니다. 그러나이를 개체로 변환하면 해당 속성도 허용 목록에 추가되어야합니다.

(object) code_id대신 (integer) 전달을 시도하십시오 code.

...
def update
  doctor = @current_user
  params[:doctor][:professional_licenses_attributes].each do |license|
    state = State.find_by_iso_abbr(license.delete(:state))
    license[:state_id] = state.id if state
  end
  doctor.update_attributes(doctor_params)
  render json: doctor, status: :ok
end
...
def doctor_params
  params.require(:doctor).permit(:email, :first_name, :last_name, :password, 
  :password_confirmation, professional_licenses_attributes: [:code, :state_id, :_destroy])
end

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Rails : 중첩 된 속성을 사용하는 허용되지 않는 매개 변수

분류에서Dev

Devise가 포함 된 Rails 4.0. 중첩 된 속성 허용되지 않는 매개 변수

분류에서Dev

rails 4 개의 허용되지 않는 매개 변수 중첩 형태

분류에서Dev

다 대다 관계의 중첩 된 형태에 대한 허용되지 않는 매개 변수 Rails 4

분류에서Dev

Rails 4-화이트리스트에도 불구하고 중첩 된 매개 변수에 허용되지 않는 매개 변수

분류에서Dev

Paperclip을 사용하는 중첩 된 속성의 허용되지 않는 매개 변수

분류에서Dev

Rails 4의 중첩 된 양식과 다 대다 관계-허용되지 않는 매개 변수 오류

분류에서Dev

Rails 6 : 허용되지 않는 매개 변수 : 활성 스토리지

분류에서Dev

허용되지 않는 매개 변수 : 중첩 된 양식의 student_ids

분류에서Dev

허용되지 않는 매개 변수 : Rails 5.2

분류에서Dev

Rails 4 허용되지 않는 매개 변수

분류에서Dev

허용되지 않는 매개 변수 : current_password, Rails 4 + Devise

분류에서Dev

Rails 4의 Dropzone JS 허용되지 않는 매개 변수

분류에서Dev

Rails5, 기존 객체를 연결하는 동안 중첩 된 형식의 허용되지 않는 매개 변수

분류에서Dev

이중 중첩 JSON 매핑-React Child에서 허용되지 않는 개체

분류에서Dev

Rails 중첩 양식 속성이 허용되지 않습니다.

분류에서Dev

Mongoid 6, Rails 5, HABTM "허용되지 않은 매개 변수"

분류에서Dev

Postgres 유형 어레이에 대해 Rails 4 허용되지 않는 매개 변수

분류에서Dev

API MANAGER 1.9 쿼리 매개 변수는 swagger 클라이언트 콘솔에서 허용되지 않습니다.

분류에서Dev

Rails 4 강력한 매개 변수의 배열 (중첩되지 않음)

분류에서Dev

사진에 허용되지 않는 매개 변수

분류에서Dev

has_one 관계가있는 2 단계 깊은 중첩 양식의 허용되지 않는 매개 변수

분류에서Dev

@ Url.ACtion ()에서 허용되지 않는 변수 매개 변수

분류에서Dev

Linux에서 허용되지 않는 실수를 포함하는 매개 변수

분류에서Dev

강력한 매개 변수가있는 rails 4에서는 이메일 속성이 보이지 않습니다.

분류에서Dev

Rails 5-중첩 속성에 대한 강력한 매개 변수

분류에서Dev

중첩 된 양식이 작동하기 위해 Devise의 허용 된 매개 변수에 중첩 된 속성을 추가하는 방법

분류에서Dev

동적 키가있는 배열에 허용되지 않는 매개 변수

분류에서Dev

허용되지 않는 매개 변수를 던지는 Rails : Devise 사용시 이름 오류

Related 관련 기사

  1. 1

    Rails : 중첩 된 속성을 사용하는 허용되지 않는 매개 변수

  2. 2

    Devise가 포함 된 Rails 4.0. 중첩 된 속성 허용되지 않는 매개 변수

  3. 3

    rails 4 개의 허용되지 않는 매개 변수 중첩 형태

  4. 4

    다 대다 관계의 중첩 된 형태에 대한 허용되지 않는 매개 변수 Rails 4

  5. 5

    Rails 4-화이트리스트에도 불구하고 중첩 된 매개 변수에 허용되지 않는 매개 변수

  6. 6

    Paperclip을 사용하는 중첩 된 속성의 허용되지 않는 매개 변수

  7. 7

    Rails 4의 중첩 된 양식과 다 대다 관계-허용되지 않는 매개 변수 오류

  8. 8

    Rails 6 : 허용되지 않는 매개 변수 : 활성 스토리지

  9. 9

    허용되지 않는 매개 변수 : 중첩 된 양식의 student_ids

  10. 10

    허용되지 않는 매개 변수 : Rails 5.2

  11. 11

    Rails 4 허용되지 않는 매개 변수

  12. 12

    허용되지 않는 매개 변수 : current_password, Rails 4 + Devise

  13. 13

    Rails 4의 Dropzone JS 허용되지 않는 매개 변수

  14. 14

    Rails5, 기존 객체를 연결하는 동안 중첩 된 형식의 허용되지 않는 매개 변수

  15. 15

    이중 중첩 JSON 매핑-React Child에서 허용되지 않는 개체

  16. 16

    Rails 중첩 양식 속성이 허용되지 않습니다.

  17. 17

    Mongoid 6, Rails 5, HABTM "허용되지 않은 매개 변수"

  18. 18

    Postgres 유형 어레이에 대해 Rails 4 허용되지 않는 매개 변수

  19. 19

    API MANAGER 1.9 쿼리 매개 변수는 swagger 클라이언트 콘솔에서 허용되지 않습니다.

  20. 20

    Rails 4 강력한 매개 변수의 배열 (중첩되지 않음)

  21. 21

    사진에 허용되지 않는 매개 변수

  22. 22

    has_one 관계가있는 2 단계 깊은 중첩 양식의 허용되지 않는 매개 변수

  23. 23

    @ Url.ACtion ()에서 허용되지 않는 변수 매개 변수

  24. 24

    Linux에서 허용되지 않는 실수를 포함하는 매개 변수

  25. 25

    강력한 매개 변수가있는 rails 4에서는 이메일 속성이 보이지 않습니다.

  26. 26

    Rails 5-중첩 속성에 대한 강력한 매개 변수

  27. 27

    중첩 된 양식이 작동하기 위해 Devise의 허용 된 매개 변수에 중첩 된 속성을 추가하는 방법

  28. 28

    동적 키가있는 배열에 허용되지 않는 매개 변수

  29. 29

    허용되지 않는 매개 변수를 던지는 Rails : Devise 사용시 이름 오류

뜨겁다태그

보관