Таким образом, в действительности вы, вероятно, захотите создать набор вложенных ресурсов для пользователя, чтобы вы могли обрабатывать каждый из них по отдельности.
resources :users do
resource :basic_details
resource :detailed_details
resources: :photos
resources: interests
end
Что дает вам такие маршруты, как: edit_user_basic_details(@user)
, поэтому у вас могут быть формы, которые выполняют действия по обновлению этих подресурсов, например:
<%= form_for :basic_details, url: user_basic_details_path(@user) do |form| %>
<%= form.text_field :name %>
<%= form.submit %>
<%= end %>
Таким образом, вы можете настроить контроллеры следующим образом:
class BasicDetailsController < ApplicationController
def edit
@user = User.find(params[:user_id])
end
def update
@user = User.find(params[:user_id])
@user.update_attribures(params[:basic_details])
end
end
Это очень быстрый и грязный способ реализовать это, но он должен показать, что вам нужно начать.Вам не нужно думать о форме и контроллерах как о редактировании таблиц в вашей базе данных, иногда гораздо удобнее думать об отдельных частях одной из ваших моделей как о своем собственном ресурсе, который можно редактировать отдельно.
Надеюсь, это поможет вам начать.