Как расширить коллекцию (?) Для включения второй, третьей и т. Д. Функций в Rails? - PullRequest
0 голосов
/ 21 июня 2011

Довольно понятно.

Я использую array_name.first, чтобы получить первый элемент.Как вы продлили его, чтобы получить второе, третье, случайное и т. Д.?

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

В Ruby вы можете просто открыть любой существующий класс и добавить свои собственные функции.

В rails у вас уже есть методы, определенные в activesupport

См. Источник на github: https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/array/access.rb

0 голосов
/ 22 июня 2011

Я обнаружил, что он уже есть, по крайней мере в Ruby 1.9.2.

Если бы этого не было, я бы создал в config / initializer файл с именем array_helper.rb (или любым другим) и добавил бы следующий код:

class Array
  def second
    self[1]
  end
end

Почему? Потому что все классы в Ruby открыты, и вы можете расширять что угодно.

Вот некоторые уловки, которые нужно знать:

При работе в консоли, если вы хотите проверить файл, обязательно используйте rails console, а не irb. Кроме того, выполните reload! после создания или обновления вышеуказанного файла. Наконец, все объекты должны быть воссозданы, чтобы использовать новый код после reload!.

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