[초보자] find와find.by의 구별 알기 쉬운 해설
왠지 find랑 find.많은 사람들이 controller에서by를 사용하고 있다고 생각합니다.
자신도 분리해서 사용하지 못했는데, 어느덧 최근까지 아래의 그림들처럼 controller가 기록되어 있다.
그러나 엔지니어가 구분해서 사용하자고 건의했기 때문에 이 건의를 들은 토대에서 실제 제작할 때find와find를 의식적으로 진행하는 것이 좋다by의 특기에 대해 아래에 서술하고 싶습니다.
find、find_by의 큰 차이
가장 큰 차이는find입니다.그걸 돌려주는 거야.
나는 아까의 그림처럼 id를 사용하여 데이터를 찾는 경우가 매우 많다고 생각한다.
그때
@micropost 1 = Micropost.find_by(id: params[:id])
@micropost 2 = Micropost.find(id: params[:id])
라는 두 가지 표현을 썼다.
데이터가 좋을 때는 어느 쪽이든 데이터를 잘 끌어올릴 수 있지만 데이터가 없을 때는 대응이 다르다.
@micropost1에서 데이터가 없으면 오류가 반환됩니다.
@micropost2에서 nil로 돌아갑니다.
그러니까findby면 데이터가 없을 때@micropost2=nil 상태에서 프로그램은view까지 계속됩니다.
그러나find를 사용하면 nil이 아니라 오류가 되돌아오기 때문에view까지 과정이 실행되지 않습니다.
따라서 특별한 이유가 없으면 show action 등에서 id로 데이터를 끌어올릴 때find를 추천합니다.
그리고find에서 id만으로 이끌어가는 것도 중점이라고 생각합니다.id 이외의 방법으로 데이터를 끌어올리려면find를 사용할 수 있습니다by를 사용하세요!
Reference
이 문제에 관하여([초보자] find와find.by의 구별 알기 쉬운 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Masashi9410/items/d57d9a0d096b0eb453f8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([초보자] find와find.by의 구별 알기 쉬운 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Masashi9410/items/d57d9a0d096b0eb453f8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)