在我的rails应用程序中,我有一个控制器" home"和其他一个" admin"。从家庭控制器的索引动作我试图渲染控制器的索引动作。在管理员控制器中,我指定了要使用的布局,即" user_layout"并且家庭控制器正在使用默认应用程序布局。 以下是家庭控制器
class HomeController < ApplicationController
def index
if user_signed_in?
@user = User.where(id: current_user.id)
@user.each do |user|
@allowed_user = user.allow
end
@org = Organization.where(user_id: current_user.id)
#render :template => 'organizations/show'
@org.each do |org|
session[:current_organization_id] = org.id
end
respond_to do |format|
format.html { render 'admin/index' }
format.json { render json:@org}
end
end
end
end
管理员控制器
class AdminController < ApplicationController
before_filter :authenticate_user!
layout "user_layout"
def index
@org = Organization.where(user_id: current_user.id)
@user = User.where(id: current_user.id)
@user.each do |user|
@allowed_user = user.allow
end
end
end
但是,如果在访问某些其他控制器的某些其他操作后调用admin控制器的索引操作,则应用user_layout,而不是从家庭控制器调用它时。
答案 0 :(得分:1)
渲染视图donot转到控制器,因此它不会转到管理控制器并检查它应该呈现的布局。你必须在家庭控制器中指定它。
请试一试。
format.html { render "admin/index", layout: "user_layout" }
在您回复阻止索引操作,家庭控制器。