Рубиновый троичный оператор и вызов метода
Я использую ruby 2.1.5, столкнувшись с некоторой проблемой с троичным оператором
Ошибка синтаксиса
request.xhr? ? render :json => "success" : redirect_to index_url
за работой
request.xhr? ? render(:json => "success") : redirect_to(index_url)
Может кто-нибудь объяснить, как это работает и почему выше одного не работает? заранее спасибо
1 ответ
Решение
Когда вы используете сокращенный синтаксис (без скобок), ruby ожидает, что все до конца строки будет параметрами вашего метода. Таким образом, ваш пример "ошибки синтаксиса" понимается как:
request.xhr? ? render(:json => "success" : redirect_to index_url)
что явно не так.