嗨,我有一个带有一个模型的Rails应用程序,我想在每页上显示的页脚中显示一个循环。
在品种模型中
class Variety < ApplicationRecord
belongs_to :request
end
我发现添加:
@varieties = Variety.all
每个视图都可以,但是我确信这是不好的做法。
答案 0 :(得分:2)
在这种情况下,最好执行以下操作,在您的应用程序控制器中添加一个before操作,这样,在每个操作上,无论您要寻找的控制器如何,它都会填充实例变量
class ApplicationController < ActionController::Base
before_action :fill_varieties
private
def fill_varieties
@varieties = Variety.all
end
end
然后在此之后,在views / layouts / _footer.html.erb上创建局部视图
<ul>
<% @varieties.each do |variety| %>
<li><%= variety.name %></li>
<% end %>
</ul>
当然,您需要使用有关如何显示它的代码来更改视图。
并在您的views / layouts / application.html.erb上仅调用部分
<%= render "layouts/footer" %>
它将在每个请求上呈现