2013-03-23 2 views
1

Я использую Doorkeeper, и если я изменяю current_user любым способом, например, поставьте его в условном выражении, используя или если, Doorkeeper его не подберет. Есть ли простой способ сохранить current_user || и разместить следующие две строки, содержащие хранилище сеансов, и перенаправить на работу в одной строке справа от двойного канала?Ruby/Rails - Как написать этот синтаксис?

resource_owner_authenticator do 

    current_user || 

    session[:after_login_redirect_to] = request.fullpath 
    redirect_to('/connect') 

end 

ответ

1

Вы можете, конечно, сделать выражение из нескольких строк кода, просто оберните их в скобки.

current_user || (session[:after_login_redirect_to] = request.fullpath; redirect_to('/connect')) 
+0

Орен, вы настолько удивительным. – ac360

+1

Слово предупреждения: когда вы вставляете столько логики в строку, вы, вероятно, делаете что-то неправильно. Однолинейные методы отличные, но не ценой сложности, методы из одной строки должны ** уменьшить ** сложность, считая, что огромный один вкладыш сложнее, чем чтение хорошо выполненного многострочного слоя. –

6

Нет необходимости, чтобы сделать это один вкладыш - использовать начинают блок:

resource_owner_authenticator do 
    current_user || begin 
    session[:after_login_redirect_to] = request.fullpath 
    redirect_to('/connect') 
    end 
end 
+0

zaius, вы рок. – ac360

Смежные вопросы