Удаление последнего элемента из коллекции переменных экземпляра - PullRequest
1 голос
/ 14 января 2011

Следующий код не работает из-за строки 4 (не может преобразовать Foo в массив). Как это можно исправить?

def index
  @foos = Foo.all 
  @latest_foo = Foo.last
  @remaining_foos = @foos - @latest_foo
end

Вот причина, по которой я это делаю:

У меня есть таблица базы данных с 5 foos. Я хочу, чтобы первый элемент, на мой взгляд, был в div под названием «latest-foo». Я хочу, чтобы все оставшиеся foo перешли в div, чей класс чередуется между четным и нечетным в зависимости от их положения в моем списке.

Кто-то задал похожий вопрос некоторое время назад на railsforum, но подход был немного другим. Я думаю, что могу использовать это решение, но я хотел бы посмотреть, есть ли лучший, более чистый или более эффективный способ.

1 Ответ

4 голосов
/ 14 января 2011

Вы можете использовать Array#pop, чтобы сделать это довольно легко:

@foos = Foo.all # assuming that they're sorted in the order you want
@latest_foo = @foos.pop

См .: http://ruby -doc.org / core / classes / Array.html # M000227

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...