首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >呈现每个对象的属性- Rails

呈现每个对象的属性- Rails
EN

Stack Overflow用户
提问于 2016-09-15 01:56:44
回答 2查看 267关注 0票数 0

我现在有一个视图,它在页面上呈现一个对象。对象是一个Integration。在Integration对象上,我有一个名为filters的属性。Filters作为数组存储。我所需要做的就是在一个列表中列出下面每个集成的过滤器。这是我的密码。

视图

代码语言:javascript
复制
 <% 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 %>

屏幕截图

在截图中,您可以看到每个元素都是集成的。我需要列出每个集成的过滤器下面的标题。

控制器

代码语言:javascript
复制
 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的东西了,但是这是行不通的,因为它是一个静态调用。我需要一份清单之类的东西。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-15 11:47:01

您可以添加另一个分部来呈现与您的集成关联的所有筛选器。

在视图中创建部分文件_show_filters.html.erb

代码语言:javascript
复制
    <% filters.each do |filter| %>
      <li><%= filter %></li>          
    <% end %>

并在迭代@integration对象时呈现此部分,如下所示。

代码语言:javascript
复制
<% 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 %>
票数 0
EN

Stack Overflow用户

发布于 2016-09-15 02:16:33

您需要迭代每个集成的内容,然后是<%= render integeration.filters %>

代码语言:javascript
复制
 <% 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中有一个子组。所以你得走很长的路。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39502104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档