하나의 양식 Ruby on rails 및 MySQL 데이터베이스로 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
끝
Reference
이 문제에 관하여(하나의 양식 Ruby on rails 및 MySQL 데이터베이스로 2개의 테이블을 업데이트합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/salmamohamed/updating-2-tables-with-one-form-ruby-on-rails-and-mysql-database-3blg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)