前提・実現したいこと
Ruby on Rails 5で、userテーブルから検索ワードにヒットしたユーザーのみを表示させる機能(ユーザー検索機能)を実装したいのですが、エラーが表示され、検索を行うページが表示されません。
解決方法やアドバイス等、ご教授くださいますと幸いです。
発生している問題・エラーメッセージ
NoMethodError undefined method `each' for nil:NilClass
該当のソースコード
html
1<h1>友達追加</h1><p>検索</p> 2 3<p>検索</p> 4<%= form_tag(user_path,:method => 'get') do %> 5 <%= text_field_tag :search %> 6 <%= submit_tag 'Search', :name => nil %> 7<% end %> 8 9<% @users.each do |user| %> 10<% end %>
controller
1class UsersController < ApplicationController 2 ・ 3 ・ 4 ・ 5 def search 6 @users = User.paginate(page: params[:page], per_page: 5).search(params[:search]) 7 end 8end
model
1class User < ApplicationRecord 2 ・ 3 ・ 4 ・ 5 def self.search(search) 6 if search 7 User.where(['email LIKE ?', "%#{search}%"]) 8 else 9 User.all 10 end 11 end 12end
試したこと
@usersに値が入っていないためにエラーが出ているかと思っておりますが、ググっても解決できませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。