Предполагая, что синтаксис ваших команд правильный, объективно ничего плохого в том, что вы делаете, нет, но я не думаю, что именно так должен был использоваться Rails.
То, что вы делаете, не очень Agile . В гибком программировании вы сосредотачиваетесь на том, чтобы доставить работающее программное обеспечение рано и часто. Таким образом, вы просто сделаете минимальное количество таблиц и столбцов, чтобы заработали первые несколько функций. Затем, как только вы это сделаете и продемонстрируете это своим клиентам / пользователям, вы решите, какую функцию добавить дальше, и добавьте таблицы и столбцы, которые вам для этого нужны. В конце концов у вас будет полное приложение.
Я думаю, что этот подход имеет некоторые преимущества, потому что вы можете узнать некоторые вещи о дизайне базы данных на ранних этапах проекта, которые помогут улучшить ваши решения в более поздней части проекта.
Я рекомендую прочитать Agile Web Development с Rails , если вы хотите увидеть пример того, как приложение будет разрабатываться таким образом.
Еще одна хорошая практика - разработка на основе тестирования . Идея в том, что вы должны писать только код для исправления неработающих тестов. Похоже, вы этого не делаете.