Это зависит от того, насколько велико приложение и какова его цель. Как и в случае с API, вы можете создавать версии своих контроллеров и представлений, размещая их в именах маршрутов и классов, и вы можете наследовать от ваших классов V1, чтобы создавать свои классы V2, переопределяя единственные вещи, которые нужно изменить. Это будет работать особенно хорошо, если вам нужно будет перейти либо к старой версии, либо к новой версии, все в одном приложении. Так что вместо
/ приложение / контроллеры / user_controller.rb
class UserController < ApplicationController
def show
...
end
def create
...
end
end
Вы бы получили:
/ приложение / контроллеры / v1 / user_controller.rb
class V1::UserController < ApplicationController
def show
...
end
def create
...
end
end
/ приложение / контроллеры / v2 / user_controller.rb
class V2::UserController < V1::UserController
def create
# show didn't change between versions, so don't override it
# only change create here so that its specific to our v2 behavior
...
end
end