하나의 양식 Ruby on rails 및 MySQL 데이터베이스로 2개의 테이블을 업데이트합니다.

2387 단어
서로 관련이 있는 2개의 모델을 생성해 보겠습니다.

상위 모델 : 이름 속성이 있는 제품.

자식 모델: URL 속성으로 이미지화됨.

레일스 g 모델 이미지 url:string

rails g scaffold 제품 이름:문자열 참조 이미지

이 링크에서 다음 설정 MySQL 데이터베이스:

https://www.ionos.com/digitalguide/server/know-how/use-mysql-with-ruby-on-rails/

db 설정 후..

제품 컨트롤러를 사용하여 두 모델을 모두 업데이트하십시오.

이와 같이:

클래스 ProductsController < 애플리케이션 컨트롤러
before_action:set_product, 전용: %i[ show edit update destroy ]

# GET/products 또는/products.json
데프 인덱스
@products = Product.all



# GET/products/1 또는/products/1.json
데프 쇼


# GET/products/new
새로운 데프
@product = Product.new
@[email protected]_image


# GET/products/1/edit
데프 에디트


# POST/products 또는/products.json
데프 생성
@product = Product.new(product_params)
풋(product_params)
응답할 일 |포맷|
@product.save라면
format.html { redirect_to @product, 주의: "제품이 성공적으로 생성되었습니다."}
format.json { 렌더링:표시, 상태::생성됨, 위치: @제품 }
또 다른
format.html { 렌더링:새로 만들기, 상태::unprocessable_entity }
format.json { 렌더링 json: @product.errors, 상태: :unprocessable_entity }




# PATCH/PUT/products/1 또는/products/1.json
데프 업데이트
응답할 일 |포맷|
if @product.update(product_params)
format.html { redirect_to @product, 주의: "제품이 성공적으로 업데이트되었습니다."}
format.json { 렌더링:표시, 상태::확인, 위치: @제품 }
또 다른
format.html { 렌더링:편집, 상태::unprocessable_entity }
format.json { 렌더링 json: @product.errors, 상태: :unprocessable_entity }




# 삭제/products/1 또는/products/1.json
데프 파괴
@product.destroy
응답할 일 |포맷|
format.html { redirect_to products_url, 주의: "제품이 성공적으로 폐기되었습니다."}
format.json { 헤드:no_content }



사적인
# 콜백을 사용하여 작업 간에 공통 설정 또는 제약 조건을 공유합니다.
def set_product
@product = Product.find(params[:id])


# Only allow a list of trusted parameters through.
def product_params
  params.require(:product).permit(:name,
  image_attributes:[:url, :alt]
  )
end

좋은 웹페이지 즐겨찾기