使用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>
我不习惯在整个网站上做这样的事情!什么是最好的方法?提前谢谢。
答案 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
。