以下のようなエラーが発生して困っています。
NoMethodError in Users#followings Showing /home/ec2-user/environment/microposts/app/views/users/_users.html.erb where line #1 raised: undefined method `any?' for nil:NilClass
-- users.html.erb -- <% if users.any? %> ⇦エラー部分 <ul class="media-list"> <% users.each do |user| %> <li class="media"> <div class="media-left"> <img class="media-object img-rounded" src="<%= gravatar_url(user, { size: 50 }) %>" alt=""> </div> <div class="media-body"> <div> <%= user.name %> </div> <div> <p><%= link_to 'View profile', user_path(user) %></p> </div> </div> </li> <% end %> </ul> <%= paginate users %> <% end %>
-- users_controller.rb -- class UsersController < ApplicationController before_action :require_user_logged_in, only: [:index, :show, :followings, :followers] def index @users = User.all.page(params[:page]) end def show @user = User.find(params[:id]) @microposts = @user.microposts.order('created_at DESC').page(params[:page]) counts(@user) end def new @user = User.new end def create @user = User.new(user_params) if @user.save flash[:success] = "ユーザを登録しました。" redirect_to (user_url(@user.id)) # @user else flash.now[:denger] = "ユーザの登録に失敗しました。" render :new end end
-- index.html.erb -- <%= render 'users', users: @users %>
-- routes.rb -- Rails.application.routes.draw do root to: 'toppages#index' get 'login', to: 'sessions#new' post 'login', to: 'sessions#create' delete 'logout', to: 'sessions#destroy' get 'signup', to: 'users#new' resources :users, only: [:index, :show, :new, :create] do member do get :followings get :followers end end resources :microposts, only: [:create, :destroy] resources :relationships, only: [:create, :destroy] end
Google翻訳の結果
未定義のメソッド `any? ' nilの場合:NilClass
このエラーの原因はusersがnilになっているのが問題なのでしょうか?
nilでエラーが出ているということは何かしらの値が入っていればOKということですか?
エラーの原因または解決方法がわかる方、ご教授お願いします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/17 03:23
2019/03/17 03:41