Rails에서 커스텀 메소드 만들기
내가 작업한 예를 살펴보겠습니다.
세 개의 테이블이 있습니다.
UserRestaurant 테이블은 사용자와 식당 모두에 속합니다. 또한 다음 정보를 보유합니다.
따라서 사용자가 음식점에 대한 찬성, 반대 및/또는 리뷰를 남기면 UserRestaurant 테이블에서 이를 처리합니다.
이제 사용자가 레스토랑을 찬성하면 UserRestaurant 인스턴스가 생성되고 찬성? 속성은 백엔드에서 true로 설정됩니다. 그러나 동일한 사용자가 동일한 레스토랑에 대한 리뷰를 남기고자 한다면 어떻게 될까요? 먼저 원본 인스턴스를 찾은 다음 업데이트해야 합니다. 필터와 그렇지 않은 것을 사용하여 프런트엔드에서 이 작업을 수행하거나 백엔드에서 동일한 작업을 수행할 수 있습니다. 또는 사용자가 먼저 리뷰를 남긴 다음 찬성표를 던진다면 어떻게 될까요? 리뷰가 포함된 UserRestaurant 인스턴스를 만든 다음 upvoted?를 업데이트해야 합니다. 기인하다.
여기에서 사용자 지정 방법을 만드는 것이 도움이 될 수 있습니다.
먼저 upvote를 만드는 것을 달성하기 위해 작성한 약간의 코드가 있습니다.
def create_update
# I'm just taking the params that were sent with the post request here and setting them with different variable names
#ur_params here permit the following attributes: user_id, restaurant_id, upvoted?, downvoted?, and review
user_id =ur_params[:user_id]
restaurant_id = ur_params[:restaurant_id]
# I then check to see if this instance exists
ur_found = UserRestaurant.find_by user_id: user_id, restaurant_id: restaurant_id
# If the UserRestaurant exists for this specific pair, just update it
if ur_found
ur_instance = ur_w_all
ur_instance.update(ur_params)
# If the UserRestaurant doesn't exist, create it!
else
ur_instance = UserRestaurant.create(ur_params)
end
render json: ur_instance, status: :created
end
이 사용자 지정 방법을 사용하면 필요할 때 업데이트와 생성을 모두 처리할 수 있습니다!
즐거운 코딩하세요!
Reference
이 문제에 관하여(Rails에서 커스텀 메소드 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jss475/creating-custom-methods-in-rails-3lb2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)