我想知道這樣做的最好方法。我正在閱讀關於佈局的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