Выпуск итерационных записей - PullRequest
1 голос
/ 07 апреля 2011

Я уверен, что это глупый вопрос, но у меня есть приложение со списком задач, которое я создал в Rails. Есть проекты и проекты имеют много задач. Помимо просмотра проектов с их задачами, я также хотел увидеть простой список всех задач. Индексное действие в контроллере задач выглядит следующим образом:

def index
    @tasks = Task.all
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @tasks }
    end
end

И в views / tasks / index.html.erb у меня просто было это для запуска:

  <%= @tasks.each do |t| %>
    <%= t.title %>,
  <% end %>

Но когда я смотрю на / tasks, я получаю это:

Task 1, Task 2, Task 3
#<Task:0x103225138>#<Task:0x1031ea998>#<Task:0x1031ea858>

Я не могу понять, почему

#<Task:0x103225138>#<Task:0x1031ea998>#<Task:0x1031ea858>"

... появляются или как их не показывать. Они появляются, даже если я не печатаю ничего, кроме кода цикла. Есть идеи? Спасибо!

1 Ответ

2 голосов
/ 07 апреля 2011
<% @tasks.each do |t| %>
  <%= t.title %>,
<% end %>

Это исправит.Проблема в том, что вы печатаете с = результатом .each, который возвращает массив, к которому он был вызван, в данном случае @tasks.Таким образом, ваш код эффективно делает это:

<% @tasks.each do |t| %>
  <%= t.title %>,
<% end %>
<%= @tasks %>

Примечание:

Более приятный способ сделать это просто

<%= @tasks.map(&:title).join ", " %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...