有用户,用户中有admin
add_column :users, :admin, :boolean, :default => false
管理员如何编辑用户帖子?
before_action :correct_user, only: [:edit, :destroy]
def edit
@posts = current_user.posts
end
def update
@post = current_user.posts
if @post.update(post_params)
...
else
render :edit
end
end
def correct_user
if current_user.admin?
current_user.admin == current_user
else
@post= current_user.posts.find_by(id: params[:id])
end
end
<%= simple_form_for @post, :html => { :multipart => true } do |f| %>
...
<% end %>
这应该是这样的:
您可以使用pundit gem检查实体的权限。