【Ruby on Rails】exists?와 present?는 무엇이 다른가? ? ?
전치
랭킹 기능 구현 중
서버가 시작되면 아래의 장소에서 화가났다.
exists? 그럼 안돼? ? ? ?
적당히 알고 있는 메소드를 넣고 있으면 present?라고 문제없이 가동했다. 이유를 모르기 때문에, 2개의 메소드에 어떤 차이가 있는지 조사해 보았다.
목적
1. 결론
exists?
데이터베이스에서 데이터를 검색하기 전에 데이터가 있는지 여부
present?
데이터베이스에서 데이터를 검색한 후 조건에 해당하는 데이터의 존재를 확인할 때
2. 원인
실제로 처음에 든 예에서는 @today_ranks 에는 배열로 데이터를 건네주었으므로, present?로 정상적으로 가동했습니다.
ranks_controller.rb
def rank
@today_post_ranks_user = Article.group(:user_id).where(created_at: Time.current.all_day).order('count(user_id) desc').limit(10).pluck(:user_id) # 今日投稿した記事
@today_ranks = []
@today_post_ranks_user.each do |user_id|
@today_ranks.push({
"user" => User.find(user_id),
"count" => Article.where(created_at: Time.current.all_day).where(user_id: user_id).count,
})
end
end
덧붙여서!blank?도 같은 의미가 되어, 정상적으로 움직였습니다.
참조
nil? empty? blank? present? exists? 메서드를 상황에 따라 구분합시다[Rails]
작성자 코멘트
적당히 쓰면 뭔가 움직였다.
아니고, 여기에서는 이런 사용법이 있어서 이렇게 움직였어!
그리고 제대로 이유를 알 수 있도록 공부하겠습니다!
내 프로필
프로그래밍 학습 경력 3개월째의 계정입니다!
프로그래밍 스쿨에서 배운 내용이나 자신이 망설인 부분 등의 출력을 위해 발신하고 있습니다.
또, 프로그래밍 초학자에게 알기 쉽고, 간결하게 정리해 정보 공유할 수 있으면이라고 생각하고 있습니다.
만약, 투고한 기사안에 잘못등 있으면, 코멘트란에서 교수 받을 수 있으면 다행입니다.
Reference
이 문제에 관하여(【Ruby on Rails】exists?와 present?는 무엇이 다른가? ? ?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nao0725/items/f96acf06aed9f7c3f05c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)