Ruby on rails 菜单部分生成代码属于哪里
在我的application.html.erb布局中,我正在呈现包含以下代码的部分共享/_menu.html.erbRuby on rails 菜单部分生成代码属于哪里,ruby-on-rails,model-view-controller,Ruby On Rails,Model View Controller,在我的application.html.erb布局中,我正在呈现包含以下代码的部分共享/_menu.html.erb <nav> <ul> <% Post.all.each do |post| %> <%= link_to post.title, post.permalink %> <% end %> </ul> </nav> 事实上,从我的角度来看,我对模型进行了一
<nav>
<ul>
<% Post.all.each do |post| %>
<%= link_to post.title, post.permalink %>
<% end %>
</ul>
</nav>
事实上,从我的角度来看,我对模型进行了一次调用,从尊重MVC的角度来看,这似乎有点问题。是否有人建议我如何解决此问题?将
添加到应用程序控制器的\u filter
之前:
before_filter :define_posts
def define_posts
@posts = Post.all
end
helper_mathod :posts
def posts
@posts ||= Post.all
end
那么您的菜单应该如下所示:
<nav>
<ul>
<% @posts.each do |post| %>
<%= link_to post.title, post.permalink %>
<% end %>
</ul>
</nav>
因此,您可以直接从菜单中调用它:
<nav>
<ul>
<% posts.each do |post| %>
<%= link_to post.title, post.permalink %>
<% end %>
</ul>
</nav>
第二种方法看起来没那么干净
现在的一个解决方案是使用:
可能重复的