Rails работает по схеме проектирования MVC.M - это модель, которая обычно является классами ORM.В Rails ActiveRecord является ORM по умолчанию, и каждая модель сопоставляется с таблицей в базе данных.Это где мясо вашей логики должно быть.Модели ничего не знают о большом мире, откуда они вызываются, например, из Интернета, веб-страницы или контроллера.
Контроллер формирует C MVC.Это конечные точки ваших веб-приложений.Каждый раз, когда URL-адрес вызывается из браузера, он попадает в конечную точку контроллера.Действие контроллера «создать» является конечной точкой.Этот метод чаще называют «действием».Задача действия контроллера «создать» должна состоять в том, чтобы организовать создание объектов, обработку и упаковку ошибок, а затем перенаправить в другое место или отправить ответ обратно, используя Представления.
Представление формирует V из MVC.Не хочу углубляться в V, так как это не имеет отношения к вашему вопросу, и я предполагаю, что вы уже знаете его.
Таким образом, метод «создания» вашей Модели, предоставляемый ActiveRecord, значительно отличается от действия «создания» контроллера.,Действие создания в контроллере может вызывать метод создания в модели как часть его оркестровки.
Это общепринятая практика - держать "контроллеры скинни" и "модели жирные".Убедитесь, что действие вашего контроллера ограничено до нескольких строк (обычно 5-6 строк для действия создания).Часть вашей логики программы должна быть в самой модели.
Не пытайтесь вызвать действие контроллера «создать» при вызове user.tags.create.Только запросы веб-браузера отправляются на контроллер.