복붙노트

[RUBY-ON-RAILS] 레일은 .find 대 어디에요

RUBY-ON-RAILS

레일은 .find 대 어디에요

나는 Model.where 방법은 항상 Model.find 방법은하지 않는 하나 개의 결과 만이 경우에도 배열을 반환 것으로 나타났습니다. 이것에 대한 어떤 이유가 있나요? 나는 Model.where가 레일 3.x에서부터 원하는 기능이라고 생각

나는 하나의 결과를 기대할 때 Model.where 내가 하나 개의 결과보다 더 기대했을 때 나는 Model.find을 이용해야 하는가?

해결법

  1. ==============================

    1.당신은 단지 원하는 하나의 객체를 기대한다면, 그렇지 않으면 당신은 Model.where.first를 호출해야합니다 그래서 예, 찾기를 사용하는 것은 쉽다.

    당신은 단지 원하는 하나의 객체를 기대한다면, 그렇지 않으면 당신은 Model.where.first를 호출해야합니다 그래서 예, 찾기를 사용하는 것은 쉽다.

    이전 스타일 해시 옵션을 찾을 수 있습니다 많은 동적 find_ 방법은 레일 4.0로 사용되지 않습니다 (관련 릴리스 노트를 참조하십시오).

  2. ==============================

    2.사실 find_by 얻은 액티브 :: 관계에서 모델 오브젝트를

    사실 find_by 얻은 액티브 :: 관계에서 모델 오브젝트를

    def find_by(*args)
      where(*args).take
    end
    

    출처

  3. ==============================

    3.Model.find 기본 키 컬럼을 사용한다. 따라서 항상 정확히 하나없는 결과가있다. 당신이 그것의 ID로 식별 하나의 특정 요소를 찾을 때 사용합니다.

    Model.find 기본 키 컬럼을 사용한다. 따라서 항상 정확히 하나없는 결과가있다. 당신이 그것의 ID로 식별 하나의 특정 요소를 찾을 때 사용합니다.

  4. from https://stackoverflow.com/questions/9574659/rails-where-vs-find by cc-by-sa and MIT license