Сегодня я столкнулся с ужасной проблемой из-за различий между средой производства и разработки Rail.Рассмотрим код:
"select * from subscription_plans where affiliate_id is null or affiliate_id = #{@subscription_plan.affiliate.id rescue 0};"
Партнеров с идентификатором 0 никогда не будет, поэтому, если @ subscription_plan.affiliate равен nill, я ожидал, что запрос вернет только планы подписки без партнера.Прекрасно работает в среде разработки, потому что nil.id выдает ошибку (при условии, что он дает некоторое сообщение об этом, по ошибке должно быть 4).Проблема в том, что я отправил этот код на свой рабочий сервер, и планы подписки с affiliate_id 4 начали появляться все время.В работе nil.id не выдает ошибку, а просто возвращает 4. Боже, спасибо rails.
Все это, чтобы спросить, что еще я должен знать как разработчик Rails?В частности, существуют ли другие различия между средами, которые потенциально могут вызвать проблемы?