[Rails]controller의 스트롱 파라미터란?
처음에
왜 이 기사를 쓰고 싶었는지
require 는 무엇을 지정하고 있는지 모르기 때문에, 스트롱 파라미터의 재확인을 하기 위해서 메모하고 싶다!
환경
・Macbook Air (Retina, 13-inch, 2019)
· 프로세서 1.6GHz 듀얼 코어 Intel Core i5
・메모리 8GB 2133 Mhz LPDDR3
· MacOS Big Sur 버전 11.5.2
기사 목차
1) 스트롱 파라미터는 뭐야?
2) 어떻게 사용합니까?
3) 마지막으로
스트롱 파라미터는 뭐야?
controller내에 새롭게 작성한 메소드명에 취득하고 싶은 정보를 지정할 수 있다
어떻게 사용합니까?
1) controller내의 액션의 명령식에 스트롱 파라미터에 사용하는 메소드명을 추가한다. (이번에는 order_params라고 함)
(예를 들면) 우편 주문 사이트에 user가 상품의 도착지를 기입해야 하는 페이지가 있다고 한다. 그 개인정보를 저장할 때 create 액션으로 처리한다. 상품의 도착지의 기입란에 우편 번호(zip_code), 주소(adress), 빌 이름(buiding_name), 전화 번호(phone_number)만을 DB에 보존하고 싶은 경우
(아래 예용 테이블)
(コントローラー)
def create
@purchase_order = PurchaseOrder.new(order_params)
end
2) 추가한 메소드에 저장하고 싶은 컬럼을 지정한다
(書き方)
private
def メソッド名
params.require(:どこのハッシュを参照すればいいか判断).permit(:requireで指定した場所のなんのカラムの取得したいか指定).merge(他に追加したいハッシュを指定)
end
(コントローラー)
def create
@purchase_order = PurchaseOrder.new(order_params)
end
private
def order_params
params.require(:purchase_order).permit(:zip_code, :address, :building_name, :phone_number).merge(user_id: current_user.id)
end
※require(:purchase_order)로 purchase_order 내의 배열을 지정
※permit(:zip_code, :address, :building_name, :phone_number)로 컬럼내의 우편번호, 주소, 빌딩명, 전화번호를 저장해 주세요.
※merge(user_id: current_user.id)로 user 정보도 취득해 주시면 설정
마지막으로
실제 구현을 할 때 수정 & 에러로 작성하여 가장 가까운 정답을 찾아 제작할 수 있지만, 실제 이런 장소에서 자신이 작업한 것을 언어화하면 알았던 마음으로 받을 수 있다고 인식하게 된다( 땀) 반복 연습과 언어화가 중요하다!
여기까지 읽어 주셔서 감사합니다!
Reference
이 문제에 관하여([Rails]controller의 스트롱 파라미터란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/janani/items/4957575a3bf6b97f35c8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)