ransack에서 0안타를 쳤을 때 검색 결과에 아무런 내용도 표시하지 않는 방법

3515 단어 ransackRails

일반 검색 결과



모든 데이터에서 찾은 검색어만 표시됩니다.
찾지 못하면 모든 데이터를 표시합니다.
(이상 말한 바와 같이 시부야를 포함한 육본목과 가와사키가 모두 나타났다.)
왜?
(ransack을 사용할 때 controller 옆에 기재.result(검색하는 방법)하는 방법은 이렇다.)

하고 싶은 일



0개의 안전한 상태에서 검색 결과에 아무런 내용도 표시되지 않습니다.

방법


왜냐하면 ransack의 사용법은 알기 쉬운 기사가 많아요.
저쪽에서 확인해 주세요.여기서 생략합니다.
controller.rb
def hoge
@search = Post.ransack(params[:q])#[:q]の中身(検索範囲)の記述は省略します。
@result = @search.result(distinct: true)
@check = params[:q]
controller 측은 상술한 바와 같이 (필요할 때 다음과 같은 변경이 필요함)
- hoge - 검색 결과를 표시하는 페이지 작업
- Post→검색할 모델
- @search - 검색 내용이 포함된 로컬 변수
- @result - 검색 결과를 포함하는 로컬 변수
- @check - 검색 범위를 포함하는 로컬 변수
검색 결과 화면이 표시됩니다.html
<% if @check.present? %><!-- ここが重要 -->

      <% @result.each do |result| %>
    <!-- 中略 -->
      <% end %>

<% else %><!-- ここが重要 -->
<% end %><!-- ここが重要 -->
위에서 말한 바와 같이 일반적인 검색 결과에 대한 기술입니다<% if @check.present? %><% else %>로 끼우세요.
지금까지 읽어들이는 조건과 일치하는 경우
다음은 <% else %><% end %>입니다. 일치하지 않으면 아무 것도 표시하지 않습니다.
이게 다야!

참조 페이지

.present? 부근의 사용 방법에 관해서는 이곳을 참고하세요.
https://qiita.com/somewhatgood@github/items/b74107480ee3821784e6

좋은 웹페이지 즐겨찾기