Поскольку вы определяете current_user
в контроллере приложения, это легко.Вы можете использовать before_filter
следующим образом в контроллере Users:
class ItemsController < ApplicationController
before_filter :check_if_owner, :only => [:edit, :update, :show, :destroy]
def check_if_owner
unless current_user.admin? # check whether the user is admin, preferably by a method in the model
unless # check whether the current user is the owner of the item (or whether it is his account) like 'current_user.id == params[:id].to_i'
flash[:notice] = "You dont have permission to modify this item"
redirect_to # some path
return
end
end
end
###
end
Вы должны добавить аналогичный метод в UsersController, чтобы проверить, является ли это его профиль, он редактирует.взгляните на Devise , который является рекомендуемым плагином для целей аутентификации.