前提・実現したいこと
現在ruby on rails を使ってカフェ検索サイトをポートフォリオとして作成しております。
店舗情報用にownerinfosというテーブルがあり、store_nameというカラムに店舗名を入れています。
検索機能にて店舗名を検索し、検索結果の表示、また検索結果がなかった場合には検索結果が無い旨の表示を行いたいです。
発生している問題・エラーメッセージ
検索機能は実装できたのですが、検索後に何もヒットしなかった場合に「検索結果がありません」等のメッセージを表示したいです。if文を使用して検索結果がなかった場合のメッセージをhtmlに書き込んでいますが表示されません。
どのようなに変更すれば検索結果がなかった場合の表示が可能でしょうか。
該当のソースコード
route.rb get "home/search" => "home#search"
home_controller def search @ownersinfo = Ownerinfo.search(params[:keyword]) @keyword = params[:keyword] render "home/search" end
search.html.erb <%= form_with url: home_search_path, method: :get, local: true do |f| %> キーワードから検索<%= f.text_field :keyword, value: @keyword %> <%= f.submit "検索" %> <% end %> <!--検索結果一覧の表示 --> <% @ownersinfo.each do |ownersinfo| %> <p><%= ownersinfo.store_name %></p> <% if ownersinfo.store_name = nil %> <p>検索結果がありませんでした</p> <% end %> <% end %>
ownerinfo.rb (modelです) def self.search(keyword) where(["store_name like?", "%#{keyword}%"]) end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/08 12:40