菜单部分生成代码属于哪里
在我的 application.html.erb 布局中,我正在渲染包含以下代码的部分共享/_menu.html.erb
<nav>
<ul>
<% Post.all.each do |post| %>
<%= link_to post.title, post.permalink %>
<% end %>
</ul>
</nav>
从我的角度来看,我对模型进行调用的事实在尊重 MVC 的意义上似乎相当有问题。有人对我应该如何解决这个问题有建议吗?
In my application.html.erb layout i'm rendering the partial shared/_menu.html.erb that contains the following code
<nav>
<ul>
<% Post.all.each do |post| %>
<%= link_to post.title, post.permalink %>
<% end %>
</ul>
</nav>
The fact that I make a call on the Model from my view seems rather problematic in the sense of respecting MVC to me. Does anyone have a suggestion as to how I should solve this issue?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将
before_filter
添加到您的 ApplicationController:然后您的菜单应该如下所示:
另一种方法是在您的 ApplicationController 中创建辅助方法:
这样您就可以直接从菜单中调用它:
第二种方法看起来更干净。
现在的一种解决方案是使用 Decent Exposure gem:
add
before_filter
to your ApplicationController:Then your menu should look like that:
Another approach is to create helper method in your ApplicationController:
So you can call it directly form your menu:
Second approach looks little cleaner.
And one nowadays solution is to use Decent Exposure gem: