"장바구니"를 만들고 사용자가 장바구니에있는 항목의 수량을 업데이트 할 수 있도록 할 계획입니다. 장바구니 품목에 대한 제거 링크가 있지만 사용자가 기술적으로 "제거"버튼을 누르는 대신 "0"을 입력 할 수 있습니다. 따라서 "update"에서 @ cart.item.quantity == 0인지 확인하고, 그렇다면 컨트롤러의 destroy 액션으로 리디렉션합니다.컨트롤러의 다른 동작으로 리디렉션하는 가장 좋은 방법
무엇이 가장 깨끗한 해결책입니까? 여기에 내가 시도했지만 작동하지 않는 것입니다, 그리고 난 내 컨트롤러에서의하지 깨끗한 접근 ...
을 생각하고 :
def update
if @cart_item.quantity == 0
render action: :destroy
else
respond_to do |format|
if @cart_item.update(cart_item_params)
format.js#on { head :no_content }
else
format.json { render json: @cart_item.errors, status: :unprocessable_entity }
end
end
end
end
def destroy
@cart_item.destroy
respond_to do |format|
format.js
end
end
@ cart_item.destroy가 내 destroy.js로 응답하거나 그걸 호출해야합니까? –
그렇지 않습니다. destroy.js로 응답하려면 리디렉션이 더 좋을 것입니다. 리디렉션이 작동하지 않는 것 같아서 – usha
에 대한 대답을 업데이트합니다. 그냥 @ cart_item.destroy를 사용하고 나서 destroy.js를 렌더링해야할까요? –