2016-05-30 8 views
0

私のRuby on Railsアプリケーションは、いつも私が望むビューではなくlayouts/application.html.erbビューをレンダリングします。誰かがアイデアを持っているのはなぜですか? マイルート・ファイルは次のようになります。Railsは必要なビューの代わりにapplication.html.erbをレンダリングします

Rails.application.routes.draw do 
    root 'startup#index' 
    resources :users 
    end 

そして、私のapplication_cotroller.rbはかなり空です:デフォルトでは

class ApplicationController < ActionController::Base 
     protect_from_forgery with: :exception 
    end 
+0

このようなコントローラで目的のレイアウトに言及: 'レイアウト「my_layout''を、と'アプリ/ビュー/ layuts/my_layout.htmlで作成したレイアウトを持っています。エルブ。 – sahil

+0

'layouts/application.html.erb'コードを質問に入れることができますか?ビューにレンダリングしたいところに '<%= yield %>'を入れましたか? – floum

+0

番号。どうもありがとうございました。歩留まりの部分が欠けていた:) – MaryLu

答えて

2

、Railsのコントローラアクションは包まれ、あなたの行動のためのビューテンプレートをレンダリング(application/layoutです)レイアウト

ActionView :: TemplateHandlers拡張のためのルックアップを管理(.html.erb、.html.haml、.json.erb、等...)

あなたがrender自身を呼び出すない限り、インデックスと呼ばれるアクションで、あなたはこの暗黙の呼び出しを取得します:

def edit 
    # your code 
    render action :'edit', layout: 'application/layout' # implicitly called 
end 

Railsは、あなたのレイアウトの処理を開始し、内の任意のyieldの代わりに、あなたの編集テンプレートの内容を配置しますあなたのレイアウト。このように、典型的なレイアウトは次のようになります。

<!doctype html> 
<head> 
</head> 
<body> 
    <!-- layout content before view --> 

    <%= yield %> 

    <!-- layout content after view --> 
</body> 
関連する問題