我试图让管理员能够删除用户的帖子。这是我在 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
我可以让它为正确的用户工作,但不能为管理员工作。我收到此错误消息
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
但我遇到了同样的错误信息。