Вы уверены, что имеете доступ к методу current_user в своем классе способностей?Я не думаю, что у вас будет.
Насколько я помню, при использовании CanCan вы могли бы иметь это в своем классе способностей:
def initialize(user)
user ||= User.new #guest user.
...
end
И пользователь будет текущим пользователем, яожидать.И я думаю, это должно сработать.
Вы также можете взглянуть на эту страницу: https://github.com/ryanb/cancan/wiki/Non-RESTful-Controllers из вики CanCan.Это не совсем та же проблема, но поскольку она охватывает особый случай (Non-RESTful-Controllers), она может дать вам несколько советов о том, как делать то, что вы хотите сделать.
Cheers