何時間も見回し、ブログや他の多くのSOの質問を読んで成功しなかったので、ついに助けを求めるようになりました.
Rails のレイアウト/レンダリング/収量のメカニズムについて、まだ理解が不足していると思います。したがって、これは愚かな質問かもしれません。何とおっしゃいましたか。
すべてのページ要求でパーシャルがレンダリングされないようにすることは可能ですか? つまり、アプリのリンクをクリックするたびに、レイアウトとパーシャルがリロードされます。
私の目標は、ある程度静的なサイドバーを作成し、「最初に application.html.erb がロードされたとき」の部分をレンダリングして一度入力し、次に ajax のみを使用して更新することです。
これが私のアプリのレイアウトです:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= content_for?(:title) ? yield(:title) : "GEN" %></title>
<meta name="description" content="<%= content_for?(:description) ? yield(:description) : "GEN" %>">
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body class="darkbody">
<header class="navbar navbar-fixed-top navbar-inverse">
<nav class="navbar-inner">
<div class="container-fluid">
<%= render 'layouts/navigation' %>
</div>
</nav>
</header>
<main role="main">
<div class="container-fluid">
<div class="row-fluid">
<div class="span3">
<%= render partial: 'charts/dashboard', layout: false %>
</div>
<div class="span9">
<div class="well well-small">
<%= render 'layouts/messages' %>
<%= yield %>
</div>
</div>
</div>
</div>
</main>
</body>
</html>
「ダッシュボード」パーシャルは一度読み込まれ、再度レンダリングされることはありません。つまり、アプリをナビゲートすると、yield セクションのコンテンツが変更/更新されますが、メイン レイアウトの「部分」では変更されません。
動機は?ダッシュボードはヘルパー メソッドを使用して、計算され、ユーザー セッション全体で更新されることのない値を表示します。何度もリロードすると、ユーザーがクリックするたびにこのヘルパーが実行され、同じ結果が返されたとしてもアプリ サーバーに負荷がかかります。
これはあまりにもクレイジーですか、それともばかげていますか?
よろしくお願いします、
広告