2017-06-15 3 views
0

views/layouts/application.htmlには、<%= yield %>という行があります。この行は最終的にコントローラのアクションに直接対応するビューに置き換えられます。私のコントローラの一Rails 5:アプリケーションレイアウトに部分的にレンダリングする

、私の代わりにデフォルトの動作の部分をレンダリングしようとしています:

def show 
    @service_groups = ServiceGroup.where(deleted_at: nil) 
    render partial: 'table', locals: {rows: @service_groups, headers: service_group_headers} 
end 

私は同じ基本的なテーブル構造を使用できるように、私はこのように部分的に使用していますさまざまな異なるデータベーステーブル(異なるコントローラ間)。

このrender partialコードは、アプリケーションレイアウトの<%= yield %>行では機能していないようです。部分コードは周囲のレイアウトなしで単独でレンダリングされます。

  1. これはなぜですか?
  2. 問題を解決するにはどうすればよいですか?

これを別の方法で処理する必要がある場合はお知らせください。

ありがとうございました。

+2

そのコントローラ用の 'show.html.erb'を作成し、そこに' render:partial'を配置したらどうでしょうか?それは動作するはずです。 –

+0

ありがとう、私はそれが動作すると確信しています。明日に確認します。本当に何もしないたくさんのファイルを持っているのはちょっと浪費のようですが、それを行うためのRailsのコンベンションであれば、私はそれに従います。 –

+0

それは働いて、ありがとう。 –

答えて

0

コメントから移行)

あなたは、そのコントローラのshow.html.erbを作成し、そこにrender :partialを置いたらどう?それは動作するはずです。

説明:「大きな」ビューから部分的な部分を使用します。だから、彼らは意図的にレイアウトに包まれていません!

関連する問題