アカウントを持っていない/サインインしていない人がユーザーのリストとすべてのユーザーの投稿を見ることができるようにしようとしています。
私のusers_controller.rbに私は持っています
class UsersController < ApplicationController
before_filter :signed_in_user,
only: [:index, :edit, :update, :destroy]
before_filter :correct_user, only: [:edit, :update]
before_filter :admin_user, only: :destroy
def index
@users = User.paginate(page: params[:page])
end
def show
@user = User.find(params[:id])
@microposts = @user.microposts.paginate(page: params[:page])
end
before_filter:signed_in_userが、サインインしたユーザーだけがユーザーリストにアクセスしたりユーザープロファイルを表示したりできるようにするものだと思います。エラーが発生せずにこれを変更するにはどうすればよいですか?
現在、3行目の:index部分を削除すると、次のエラーが発生します。
未定義のメソッド`admin? ' nilの場合:NilClass
これは/app/views/users/_user.html.erbの4行目にあります
<li>
2: <%= gravatar_for user, size: 52 %>
3: <%= link_to user.name, user %>
4: <% if current_user.admin? && !current_user?(user) %>
5: | <%= link_to "delete", user, method: :delete, confirm: "You sure?" %>
6: <% end %>
7: </li>