Как я могу использовать помощник рельсов "distance_of_time_in_words" в старом обычном рубине (не рельсы) - PullRequest
27 голосов
/ 06 марта 2012

В Rails есть помощник, который преобразует расстояние во времени в словах с помощью distance_of_time_in_words

Что мне нужно включить, если я просто использую ruby ​​в приглашении irb, чтобы получить эту функцию?

Я пытался require 'action_view', но это не помогло.

Я также пытался require 'active_support/core_ext', но это тоже не помогло.

1 Ответ

54 голосов
/ 06 марта 2012

Это должно работать:

require 'action_view'

include ActionView::Helpers::DateHelper

И то, и другое необходимо сделать по нескольким причинам. Во-первых, вам нужна библиотека, чтобы ее модули и методы были доступны для вызова. Вот почему вам нужно сделать require 'action_view'.

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

Когда вы находитесь в консоли, у вас уже запущен экземпляр класса Object. Вы можете проверить это, вызвав self в консоли irb. Когда вы вызываете include ActionView::Helpers::DateHelper, вы включаете эти методы для любого экземпляра класса Object. Поскольку это неявный получатель консоли irb, вы можете просто сохранить distance_of_time_in_words прямо на консоли и получить то, что вы хотите!

Надеюсь, это поможет.

Джо

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