我现在有一个视图,它在页面上呈现一个对象。对象是一个Integration。在Integration对象上,我有一个名为filters的属性。Filters作为数组存储。我所需要做的就是在一个列表中列出下面每个集成的过滤器。这是我的密码。
视图
<% if @integrations.any? %>
<div class="configured-integrations">
<h3 class="heading-3">My Configured Integrations:</h3>
<ul class="integration-list integration-list--compact">
<%= render @integrations %>
</ul>
</div>
<% end %>屏幕截图

在截图中,您可以看到每个元素都是集成的。我需要列出每个集成的过滤器下面的标题。
控制器
def index
# Get the list of the user's integrations grouped first by provider then
# from oldest to newest."
@integrations = current_account.integrations
.order(type: :asc, created_at: :asc)
end我希望这是足够清楚的。所以回顾一下:我需要列出下面每一个集成的过滤器。我已经尝试过类似于这个@integrations.first.filters的东西了,但是这是行不通的,因为它是一个静态调用。我需要一份清单之类的东西。谢谢
发布于 2016-09-15 11:47:01
您可以添加另一个分部来呈现与您的集成关联的所有筛选器。
在视图中创建部分文件_show_filters.html.erb
<% filters.each do |filter| %>
<li><%= filter %></li>
<% end %>并在迭代@integration对象时呈现此部分,如下所示。
<% if @integrations.any? %>
<div class="configured-integrations">
<h3 class="heading-3">My Configured Integrations:</h3>
<ul class="integration-list integration-list--compact">
<% @integrations.each do |integration| %>
<li>
<%= integration %>
<ul class="">
<%= render 'show_filters', filters: integration.filters %>
</ul>
</li>
<% end %>
</ul>
</div>
<% end %>发布于 2016-09-15 02:16:33
您需要迭代每个集成的内容,然后是<%= render integeration.filters %>。
<% if @integrations.any? %>
<div class="configured-integrations">
<h3 class="heading-3">My Configured Integrations:</h3>
<ul class="integration-list integration-list--compact">
<% @integrations.each do |integration| %>
<li>
<%= integration %>
<ul class="">
<%= render integration.filters %>
</ul>
</li>
<% end %>
</ul>
</div>
<% end %>您必须更新这段代码才能使这些部分工作,但我希望这能让我们理解这一点。
您不能在这里使用快捷<%= render @integrations %>,因为您希望在@integrations中有一个子组。所以你得走很长的路。
https://stackoverflow.com/questions/39502104
复制相似问题