Учиться программированию через тестирование, не зная программирования - верный путь насобирать шишек и получить самое неприятное впечатление от изучаемой технологии. Рекомендую отказаться пока от тестирования и научиться основам без него. Рановато.
На русском ничего актуального нет, а то, что есть (гибкая разработка на рейлс 4) - к чтению не рекомендуется.
Читайте на английском, пусть лучше медленно, чем никак:
Во-первых, под "не так" попадает использование логики в шаблонах вьюх.
Во-вторых, форматирование дикое просто, но это на работу не должно влиять.
В третьих и вероятнее всего, дело в том, что ваш второй if
находится в интерпретирующем теге erb: <%= %>
А должно быть <% %>
На том, что лучше знаете. Знаете пхп - пишите на нем. Если хочется по пути освоиться в руби, пишите на Руби. Возможности языков для этой цели практически не отличаются.