2014-04-03 43 views
1

使用Rails 4(以及如果有幫助的話,使用帶SASS的Bootstrap)。我有一個Award模型,具有:name屬性。我想在我的網站導航中添加一個下拉列表,其中列出了每個獎項名稱以及他們的展示頁面的鏈接(總共約六個)。像...Ruby on Rails - 使用動態內容導航

<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> 

我不習慣做這樣的網站範圍內的東西!什麼是最好的方法?提前致謝。

回答

3

如果您想要全站導航下拉菜單,然後查看您的代碼,您需要做的第一件事就是設置@awards,這將可在整個應用程序中訪問。爲了達到這個目的,請在ApplicationController(app/controllers/application_controller.rb)中添加一個before_action

例如:

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

+0

非常感謝,工作! :) – Rachel9494

+0

很高興幫助:) –