Ruby on rails 如何避免页脚使用相同的实例变量
我的rails应用程序中有一个页脚,显示了welcome_controller.rb中两个实例变量生成的所有最新帖子和类别 但是,如果我转到另一个由不同控制器负责的部分,我会得到一个错误,因为@posts和@categories实例变量不在那里,无法循环并列出最新的帖子和类别 欢迎使用\u controller.rb(代码摘录) _footer.htmlRuby on rails 如何避免页脚使用相同的实例变量,ruby-on-rails,Ruby On Rails,我的rails应用程序中有一个页脚,显示了welcome_controller.rb中两个实例变量生成的所有最新帖子和类别 但是,如果我转到另一个由不同控制器负责的部分,我会得到一个错误,因为@posts和@categories实例变量不在那里,无法循环并列出最新的帖子和类别 欢迎使用\u controller.rb(代码摘录) _footer.html <div class="row footer-black"> <div class="large-3 columns
<div class="row footer-black">
<div class="large-3 columns text-left">
<h4>Categories</h4>
<ul>
<% @categories.each do |c| %>
<% unless c.header? %>
<% if c.restriction %>
<% if check_for_free_questions_in_restricted_category(c) %>
<li> <%= link_to c.title, category_random_free_question_path(c),'data-no-turbolink' => true %> </li>
<% else %>
<li> <%= link_to c.title, new_subscription_path,'data-no-turbolink' => true %> </li>
<% end %>
<% else %>
<li> <%= link_to c.title, category_random_question_path(c),'data-no-turbolink' => true %> </li>
<% end %>
<% end %>
<% end %>
</ul>
</div>
<div class="large-5 columns text-left">
<h4>Latest Posts</h4>
<ul>
<% @posts.each do |p| %>
<li> <%= link_to truncate(p.title, length:70), blog_post_path(p) %> </li>
<% end %>
</ul>
</div>
<div class="large-4 columns text-left social-links">
<h4>Social</h4>
<a href="#">
<i class="fa fa-facebook-square fa-2x"></i>
</a>
<a href="#">
<i class="fa fa-twitter-square fa-2x"></i>
</a>
<a href="#">
<i class="fa fa-google-plus-square fa-2x"></i>
</a>
</div>
</div>
类别
- 正确%>
- 正确%>
- 正确%>
最新帖子
社会的
有没有一种方法可以在页脚中显示类别和帖子,而无需反复实例化相同的变量?简短的回答是“否”。每个变量在使用之前必须实例化(初始化)(在本例中,在您的视图中) 现在,有一些比编写更有效的方法来实例化这些变量:
@categories = Category.all
@posts = Post.order("created_at DESC")
在多个控制器中。但是,这是一个不同的问题。如果你对此感兴趣,那就提出一个新的问题或改进这个问题
@categories = Category.all
@posts = Post.order("created_at DESC")