在属于视图的索引视图中显示特定数据

时间:2012-12-22 17:16:28

标签: ruby-on-rails ruby-on-rails-3

创建一个简单的todolist。尝试显示属于列表索引视图中列表的任务的说明。使用当前代码,当我使用 list.tasks 时,所有数据字段都显示在属于列表的所有任务中,但我只想要 task.desc。我如何具体告诉我只想让task.desc出现?

列表/ index.html.erb

<h1>My Lists</h1>

        <%= link_to 'New List', new_list_path, class: "btn btn-primary" %>

        <h3>Name | Time Ago</h3>

    <% @lists.each do |list| %>

        <h4><%= link_to list.name, list %></td></h4>

        <% if list.created_at > Time.now.beginning_of_day %>
        <%="#{time_ago_in_words(list.created_at)} ago"%>
        <% else %>
        <h6><%= list.created_at.strftime("%b %d, %Y") %></h6>

        <%= list.tasks %><br />
            <% end %>


        <%= link_to 'Edit', edit_list_path(list) %> | 
        <%= link_to 'Destroy', list, method: :delete, data: { confirm: 'Are you sure?' } %>
        <br />
    <% end %>
    <br />

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你可以使用.each,你已经用于列表迭代:

<% list.tasks.each do |task| %>
  <%= task.desc %><br />
<% end %>

答案 1 :(得分:0)

获取每个描述的数组

list.tasks.collect(安培;:降序)

&amp;是一个进入Ruby 1.9的Rails快捷方式 - 它说,在&amp;之后应用方法。到集合的每个成员。

我认为可能想要

list.tasks.collect(&amp;:desc).join(“&lt; br /&gt;”)。html_safe

:)

(您可能不需要html_safe,它用于显示您故意将标记放入字符串中,并且您不希望它被转义)

如果这适合你,我会把它从视图中取出并放在列表类中。如在

def current_tasks
  tasks.collect(&:desc)
end

这意味着您可以对此进行测试并在以后重复使用。