yelpと非常によく似た機能を持つレールアプリがあり、顧客のためにダッシュボードを使って場所を編集したり、今のところ1つの場所しか持てません。ダッシュボードサイドバーでyieldを使用して同じページにコンテンツを表示する方法
私はダッシュボードコントローラを作成しました。サイドバー用の部分的なビューがありましたが、これまでのところすべてが機能していましたが、私の問題はサイドバーのリンクをクリックするとapplication.html.erbになります。サイドバーからダッシュボード/ index.html.erbの主要部分にすべてを譲りたい
私の質問は、私がサイドバーの右側にある部分にサイドバーでクリックするものページ上に基本的に機能はトップにあるnavbarのようなものです(ログインした顧客のみ)が、2つの利回りで混乱します。私は "content_for"と<%= yield:sidebar%>を試しましたが、まだそれを稼働させる方法を理解していませんでした。また、私はビューを共有し、 "content_for"に問題を引き起こすかもしれないダッシュボードのサイドバーで彼のユーザーアカウントを編集するための機能を持っているユーザーと顧客モデルとdeviseを使用していますか?
私はまだレール上でルビーを学んでおり、どんな種類の入力に対しても非常に満足しています。
dashboard_controller.rb
def index
@place = Place.where(customer_id: current_customer.id).first
end
ダッシュボード/ index.html.erb
<div class="content">
<div class="sidebar">
<%= render 'dashboard/sidebar' %>
</div>
<div class="main">
<%= yield %>
</div>
</div>
_sidebar.html.erb
<li class="nav-link">
<%= link_to "<span class='fa fa-cog'></span> Edit".html_safe, edit_place_path(@place) %>
</li>
<li class="nav-link">
<%= link_to "<span class='fa fa-cog'</span> Settings".html_safe, edit_customer_registration_path %>
</li>
<li class="nav-link">
<%= link_to "<span class='fa fa-sign-out'></span> Log Out".html_safe, destroy_customer_session_path, method: :delete %>
</li>
application.html.erb
<body>
<%= render 'layouts/shared/header' unless @disable_navbar %>
<%= yield %>
<%= render 'layouts/shared/footer' unless @disable_footer %>
</body>
http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield – max