0

我有一個noob問題。我需要從另一個控制器渲染視圖。我使用設計並創建一個perfil控制器。渲染查看另一個控制器

PERFIL控制器:

class PerfilController < ApplicationController 
    before_filter :authenticate_user! 
    def index 
    end 

    def show 

     @usuario = User.find(current_user) 
     @usuario.perfil ||= @usuario.build_perfil 
     @perfil = @usuario.perfil 
    end 

    def update 
    @usuario = User.find(current_user) 
    @perfil = Perfil.new(perfil_params) 
    @usuario.perfil ||= @usuario.build_perfil 

    respond_to do |format| 

      if @usuario.perfil.update_attributes(perfil_params) 
      format.html {redirect_to @usuario, notice: "update" } 
    else 
     format.html { render action: "show"} 
    end 
    end 
end 

    private 

    def perfil_params 
     params.require(:perfil).permit(:nombre, :apellido) 
    end 
end 

用戶控制器:

class UsersController < ApplicationController 
    before_filter :authenticate_user! 
    after_action :verify_authorized 

    def index 
    @users = User.all 
    authorize User 
    end 

    def show 
    @user = User.find(params[:id]) 
    authorize @user 
    end 

    def update 
    @user = User.find(params[:id]) 
    authorize @user 
    if @user.update_attributes(secure_params) 
     redirect_to users_path, :notice => "User updated." 
    else 
     redirect_to users_path, :alert => "Unable to update user." 
    end 
    end 

    def destroy 
    user = User.find(params[:id]) 
    authorize user 
    user.destroy 
    redirect_to users_path, :notice => "User deleted." 
    end 


    private 

    def secure_params 
    params.require(:user).permit(:role) 
    end 

end 

class PerfilController < ApplicationController 
    before_filter :authenticate_user! 
    def index 
    end 

    def show 

     @usuario = User.find(current_user) 
     @usuario.perfil ||= @usuario.build_perfil 
     @perfil = @usuario.perfil 
    end 

     def update 
     @usuario = User.find(current_user) 
     @perfil = Perfil.new(perfil_params) 
     @usuario.perfil ||= @usuario.build_perfil 

     respond_to do |format| 

      if @usuario.perfil.update_attributes(perfil_params) 
      format.html {redirect_to @usuario, notice: "actualizado" } 
      else 
      format.html { render action: "show"} 
      end 
    end 
end 

    private 

    def perfil_params 
     params.require(:perfil).permit(:nombre, :apellido) 
    end 
end 

PERFIL /顯示

<h2>Edit </h2> 

<%= form_for @perfil, :url=>{:action=>:update}, :html=>{:method=>:put} do |f| %> 


<p><%= f.label :nombres %><br /> 
<%= f.text_field :nombre %></p> 

    <div><%= f.label :apellidos %><br /> 
    <%= f.text_field :apellido %></div> 



    <div><%= f.submit "Actualizar" %></div> 
<% end %> 


<%= link_to "Atrás", :back %> 

好,我需要顯示的用戶更新/索引

<h3>Configuracion de la cuenta</h3> 
<div class = "col-md-3"> <h3>Users</h3> 
<div class="nav nav-pills nav-stacked"> 
<%= render 'users/menu' %> 
</div> 
</div> 
<div class = "col-md-7"> 
<h3>Informacion</h3> 
<%= render 'users/show' %> 
</div> 

我希望我解釋得很好。

問候。

回答

0

您可以渲染應用程序中的任何視圖。使用render 可以處理視圖中使用的變量,並將它們包括在方法調用中。

僅渲染呈現視圖,並且不調用控制器

呈現來自控制器的其它控制器視圖的作用..

在users_controller.rb

##render partial from views/profile 
    respond_to do |format| 
     format.js { render 'profile/upload' } 
     format.html 'profile/upload' 
    end 

同樣可以也可用於視圖文件中

<%= render 'profile/upload'%> 
+0

對不起ajaja ..我不明白! :/ – 2015-02-11 15:01:37

相關問題