[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 정보도 취득해 주시면 설정

마지막으로



실제 구현을 할 때 수정 & 에러로 작성하여 가장 가까운 정답을 찾아 제작할 수 있지만, 실제 이런 장소에서 자신이 작업한 것을 언어화하면 알았던 마음으로 받을 수 있다고 인식하게 된다( 땀) 반복 연습과 언어화가 중요하다!

여기까지 읽어 주셔서 감사합니다!

좋은 웹페이지 즐겨찾기