管理者がユーザーによる投稿を削除できるようにしようとしています。これは私が post.html.erb 内で使用しているコードです
<% if current_user.admin? %>
<%= link_to "delete", post, method: :delete %>
<% end %>
これは私がコントローラーの中に持っているものです
class PostsController < ApplicationController
before_filter :signed_in_user
before_filter :admin_user, only: :destroy
before_filter :correct_user, only: :destroy
def destroy
@post.destroy
redirect_to root_path
end
private
def correct_user
@post = current_user.posts.find_by_id(params[:id])
redirect_to root_path if @post.nil?
end
私はそれを correct_user に対しては機能させることができますが、管理者に対しては機能させません。このエラーメッセージが表示されます
undefined local variable or method `admin_user' for #<PostsController:0x5fda230>
admin_user を user.id ==1 private として定義しようとしました
def admin_user?
current_user && current_user.id == 1
end
しかし、同じエラーメッセージが表示されます。