【发布时间】:2012-01-23 20:38:40
【问题描述】:
我想知道执行此操作的最佳方法。我正在阅读有关布局的 Rails 指南,但对此我有些困惑。
我有一个用户控制器和一个会话控制器。用户控制器用于“注册”,会话控制器用于“登录”。这两个控制器都呈现相同的登录和注册布局 (accounts.html.erb)。
一旦他们登录,我想为他们登录时发生的所有事情呈现不同的布局 (application.html.erb)。我的问题是,在用户控制器中,我有一个“显示”操作,即用户配置文件,只有在用户登录时才能查看,但这个“显示”操作使用 accounts.html.erb 布局,因为“创建”和“新建”操作。我希望“显示”操作使用 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
结束
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1