私はこれを行う最善の方法を知りたいと思います。私はレイアウトについてRailsガイドを読んでいましたが、私はこれで少し困惑しています。複数のRailsレイアウト、または継承?
私はユーザーコントローラとセッションコントローラを持っています。ユーザコントローラは「サインアップ」に使用され、セッションコントローラは「サインイン」に使用されます。これらのコントローラは、ログインとサインアップ(accounts.html.erb)のレイアウトを同じにします。
サインインしたら、サインイン時に発生するすべてのもの(application.html.erb)に対して別のレイアウトをレンダリングします。私の問題は、Usersコントローラでは、私は 'show'アクションを持っています。これはユーザープロファイルです。これは、ユーザーがログインしているときだけ表示できますが、この 'show'アクションは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
エンド
ああ、それは簡単ですか?私は、レイアウトではなく、そのアクションのための特定のテンプレートをレンダリングするためにのみ行うことができると思った...それは素晴らしいです! Jeffに感謝します。 – JeffC