我想知道这样做的最好方法。我正在阅读关于布局的Rails指南,但我对此有点难以理解。Rails布局,多重还是继承?
我有一个用户控制器和会话控制器。用户控制器用于“注册”,会话控制器用于“登录”。这两个控制器都呈现相同的登录和注册布局(accounts.html.erb)。
一旦他们登录,我想为他们登录时发生的所有事情(application.html.erb)呈现不同的布局。我的问题是,在用户控制器中,我有一个“显示”操作,它是用户配置文件,只有当用户登录时才可以查看,但此“显示”操作正在使用accounts.html.erb布局,因为'创造'和'新'行动。我希望'show'动作使用application.html.erb以及这里的其余动作来使用accounts.html.erb。我应该使用模板继承来处理这类事情吗?或者有什么合适的方法去做这类事情?
或许有些代码也将有所帮助:
class UsersController < ApplicationController
layout 'accounts'
def show
@user = User.find(params[:id])
@title = @user.name
end
def new
@user = User.new
@title = "Sign up"
end
def create
@user = User.new(params[:user])
if @user.save
sign_in @user
flash[:success] = "Welcome"
redirect_to @user
else
@title = "Sign up"
render :action => "new"
end
end
末
哦,那很简单?我以为你只能做到这一点,为该行动渲染一个特定的模板,而不是布局......太棒了!谢谢杰夫。 – JeffC 2011-12-19 19:41:59