Подтвердить что ты не робот

Как получить имя месяца в рубине на Rails?

поэтому я создаю на мой взгляд:

<%=date=Date.today%>

Как получить имя месяца из даты? Я пытался сделать что-то вроде

 <%= DATE::ABBR_MONTHNAMES(date.month)%>    

Но без успеха. Я продолжаю получать ошибку: неинициализированная константа ActionView::Base::CompiledTemplates::MONTHNAMES

Как инициализировать константу или есть ли другой способ получить имя из формата Date?

будет очень благодарен за любые ответы!

4b9b3361

Ответ 1

Ref this

<% @date = Date.today  %>  
<%= @date.strftime("%B")%>

если

@date >> Fri, 11 Jun 2010

затем

@date.strftime("%B") >> "June"

Ответ 2

Если вы ищете только имя месяца, константа Date::MONTHNAMES, предоставляемая рельсами, является самым простым решением для вас:

   Date::MONTHNAMES = 
   [
    [ 0] nil,
    [ 1] "January",
    [ 2] "February",
    [ 3] "March",
    [ 4] "April",
    [ 5] "May",
    [ 6] "June",
    [ 7] "July",
    [ 8] "August",
    [ 9] "September",
    [10] "October",
    [11] "November",
    [12] "December"
   ]

Ответ 3

Если у вас есть определенный пользовательский формат даты и времени, который вам нужно использовать повторно, вы можете продлить помощник даты и времени ActiveSupport.

например. если вы определяете следующее в config/environment.rb

ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(:full_english => "%A %B %d, %Y at %I:%M %p")

тогда, когда вы вызываете Time.now.to_s(:full_english) в своих представлениях, вы получите что-то вроде:

"Friday June 11, 2010 at 12:53 PM"

Метод Ruby strftime хорошо документирован на http://apidock.com/ruby/Time/strftime

Ответ 4

Выберите, что вы хотите

 Date.parse('5-jan-2017').strftime('%B')

Результат:

= > "Январь"

Date.parse('5-jan-2017').strftime('%b')

Результат:

= > "Ян"

Для большей части ваших дальнейших вопросов, связанных с датой, обратитесь к этой ссылке http://www.foragoodstrftime.com/