Rails为2个视图使用相同的控制器

时间:2012-02-09 21:42:04

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我想知道这是否可能

例如:

在我的用户控制器中

我有用户的编辑和更新方法#edit users / edit_acc view以更新他们的通行证和电子邮件

但我希望用户在同一控制器和视图文件夹上创建,编辑和更新其地址属性,如地址,城市等,但具有不同的视图html

所以看起来像这个用户#edit_loc users / edit_loc

并且每当用户要创建/更新他们的attr时,看起来只允许更新和编辑方法。

谢谢:)

例如:

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 个答案:

答案 0 :(得分:3)

只需在config / routes.rb中添加相应的条目:

resources :users do
  get :edit_loc
  put :update_loc
end

然后创建视图并将操作添加到控制器。