我想有一个右侧栏,每个页面的内容都有变化。
例如,当我在“朋友”页面中时,侧栏应显示“新朋友”。
当我进入“帐户”页面时,侧栏将显示“最近的活动”。
我应该如何去遵循Rails的设计模式?我听说过Cells宝石,但不确定是否使用它。
最佳答案
这是一种方法,在您的布局中添加一个命名的yield部分
<div id="main-content">
<%= yield %>
</div>
<div id="side-content">
<%= yield(:side_bar) %>
</div>
然后在您的视图中使用content_for将内容放入命名的yield中
# friends view ....
<% content_for(:side_bar) do %>
<%= render :partial => "shared/new_friends" %>
<% end %>
# account view ....
<% content_for(:side_bar) do %>
<%= render :partial => "shared/recent_activity" %>
<% end %>
这要求您明确说明每个视图在侧栏中显示的内容,
也许动态地执行它会更好?可能取决于具体情况和您的偏好
另请参见-http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield
关于ruby-on-rails - Rails中具有动态内容的侧栏的设计模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8625829/