Нет необходимости проверять авторизацию на действия, которые разрешены всем пользователям.
Если у вас есть авторизация по умолчанию в вашем ApplicationController, например:
before_filter :authorize
Затем либо удалите это полностью, и добавьте его обратно только для тех действий, которые требуют авторизации, либо в каждом контроллере вы можете отключить его с помощью:
skip_before_filter :authorize, :only => [:action_method_name]
В вашем ApplicationController должен быть простой метод, в котором вы можете передать роль и получить значение true, если текущий пользователь авторизован:
def authorized? role
return true if current_user.roles.collect{|r| r.name.to_sym}.include(role.to_sym)
false
end
Тогда вы можете процедурно проверить, какую роль вы хотите в своих действиях.