1

私はコンテンツのために通常通りビュー/レイアウト内にapplication.html.erbを持っています。<%= yield%>です。今、私は異なるページ(プロファイル、アカウント、通知など)の束を保持するユーザーアカウントの設定ページを書いています。一部であるすべてのコントローラについてネームスペース内のコントローラの3.1のテンプレート継承

コントローラ/ settings_controller.rb

class SettingsController < ApplicationController 
end 

コントローラ/設定/ account_settings_controller.rb

class Settings::AccountSettingsController < ApplicationController 
end 

コントローラ/設定/ profile_settings_controller.rb

class Settings::ProfileSettingsController < ApplicationController 
end 

私がしたい設定名前空間の "常にレンダリングする例えば

<markup> 
    <%= yield(:settings_content) %> 
</markup> 

ので、含まれている特定のビュー/設定/ master.html.erbでビュー」、ビューの設定/ profile_settings/edit.html.erbは

<% content_for(:settings_content) do %> 
    <markup> 
    </markup> 
<% end %> 

私はありません含まれていますどこから始めるのかおそらく私のコントローラーは次のように見えるはずです

class Settings::AccountSettingsController < SettingsController 
end 

ガイダンスは大歓迎です。

EDIT:

Rendered settings/account_settings/edit.html.erb within layouts/application (19.6ms) 

settings_controllerで

Rendered settings/master.html.erb within layouts/application (19.6ms) 
Rendered settings/account_settings/edit.html.erb within settings/master (19.6ms) 

答えて

0

書き込みレイアウト「設定/マスターになる、とあなたは私がお勧めこの1

+0

これは私が今使っているものです。問題は、設定/マスターにレイアウト/アプリケーションを継承させて、<%= yield %>が設定/マスターの内容を吐き出すようにすることです。私は現時点では非常に貧しい解決策を使用しているので、私自身の質問に答える代わりに、私はこれを解決する別の方法を待っています。 –

0

から名前空間のコントローラを継承する必要がある必要がありますこれを使用して、hamlを使用してネストされたサブレイアウトを持つマスターレイアウトを作成する:

あなたapplication_helper.rbに

# Allows easy using nested layouts 
    def inside_layout(layout = 'application', &block) 
    render :inline => capture_haml(&block), :layout => "layouts/#{layout}" 
    end 

レイアウト/ application.html.haml

!!! 
%html 
    %head 
    -# your header content 
    %body 
    .content 
     = yield 

レイアウト/ single_column.html.haml

= inside_layout do 
    .middle 
    = yield   

レイアウト/ two_columnをこのメソッドを追加します。 html.haml

= inside_layout do 
    .left 
    -# your shared left content 
    .right 
    = yield   

通常のレイアウトのように列レイアウトを使用できるようになりましたが、マスター歩留まりにネストされています。 inside_layoutコールでレイアウトに名前を付けると、ネストされたレイアウトにネストされたレイアウトをさらに作成することもできます。

希望します。

関連する問題