Rails, использующие один и тот же контроллер для двух представлений - PullRequest
0 голосов
/ 10 февраля 2012

я хотел бы знать, возможно ли это

ex:

в моем контроллере Users

у меня есть метод редактирования и обновления для пользователей # edit users /view edit_acc для обновления своего пароля и электронной почты

, но я хотел бы, чтобы пользователи создавали, редактировали и обновляли свои атрибуты локализации, такие как адрес, город и т. д., на одном контроллере и в папке просмотра, но с другим представлением html

, так что это выглядит так: users # edit_loc users / edit_loc

и каждый раз, когда пользователь собирается создавать / обновлять его attr, похоже, что для этого разрешены только методы update и edit.

спасибо:)

Пример:

UserController

def edit
        @user = User.find_by_auth_token!(cookies[:auth_token]) 
     end

     def update
       @user = User.find_by_auth_token!(cookies[:auth_token])

       respond_to do |format|
         if @user.update_attributes(params[:user])
         format.html { render action: "edit" }
         flash[:success] = 'Conta Atualizada'


       else
         format.html { render action: "edit" }
         format.json { render json: @user.errors, status: :unprocessable_entity }
     end
   end
 end







 def edit_loc
        @user = User.find_by_auth_token!(cookies[:auth_token]) 
     end

     def update_loc
       @user = User.find_by_auth_token!(cookies[:auth_token])

       respond_to do |format|
         if @user.update_attributes(params[:user])
         format.html { render action: "edit_loc" }
         flash[:success] = 'Conta Atualizada'


       else
         format.html { render action: "edit_loc" }
         format.json { render json: @user.errors, status: :unprocessable_entity }
     end
   end
 end

1 Ответ

3 голосов
/ 10 февраля 2012

Просто добавьте соответствующие записи в config / rout.rb:

resources :users do
  get :edit_loc
  put :update_loc
end

Затем создайте представление и добавьте действия в свой контроллер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...