Ruby on Rails - 使用动态内容进行导航

时间:2014-04-03 22:05:43

标签: ruby-on-rails navigation

使用Rails 4(如果有帮助,使用SASS引导程序)。我有一个Award模型,其:name属性。我想在我的网站范围的导航中放入一个下拉列表,其中列出了每个奖项名称以及指向其展示页面的链接(总共约六个)。有点像...

<li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Awards<b class="caret"></b></a
  <ul class="dropdown-menu">
    <% @awards.each do |award| %>
      <li><%= link_to award.name, award %></li>
    <% end %>
  </ul>
</li>

我不习惯在整个网站上做这样的事情!什么是最好的方法?提前谢谢。

1 个答案:

答案 0 :(得分:4)

如果您想要站点范围的导航下拉列表然后查看您的代码,首先需要设置@awards,这将在整个应用程序中可访问。为了实现这一点,请在before_action(app / controllers / application_controller.rb)中添加ApplicationController

例如:

class ApplicationController < ActionController::Base
  before_action :set_awards
  # .... 


  private
    # Use callbacks to share common setup or constraints between actions.
    def set_awards
      @awards = Award.all
    end
end

之后,您可以在app/views/layouts/application.html.erb文件中添加您的视图代码(您在问题中共享的代码)。这是您的默认布局文件。如果没有特定于控制器的布局,Rails每次都会使用app/views/layouts/application.html.erb