Использование accepts_nested_attributes_for в рельсах с датой и временем

Я пытаюсь использовать повторяющийся раздел даты и времени в приложении rails, используя accepts_nested_attributes_for.

У меня есть следующее:

accepts_nested_attributes_for :meetings, :allow_destroy => true, :reject_if => lambda { |a| a[:starting_at].blank? }

На мой взгляд, в настоящее время я использую рельсы date_select и time_select.

Однако это не сохранит отправку, и я думаю, это из-за того, что starting_at является атрибутом даты и времени, состоящим из нескольких частей. Я использовал a[:starting_at].blank? в прошлом при работе с text_fields, но, похоже, он не работает с полями date_select/time_select.

Кто-нибудь может пролить свет?

Мой другой вариант - использовать text_field, но я не уверен, как это сделать, чтобы дату и время было легко (и удобно выбирать), потому что, если я использую f.text_field :starting_at, он объединит дату и время в одном текстовое поле.


person user1116573    schedule 30.04.2012    source источник


Ответы (2)


Вы можете легко использовать text_field и выбрать лучший способ.

Вы держите в своем взгляде, как у вас есть

f.text_field :starting_at

В вашей модели:

def starting_at=(input)
  # use a shared converter to convert the format from your textfield
  x = self.string_to_date(input, I18n.t('date.formats.default'))
  write_attribute(:starting_at, x)
end

def starting_at
  # Same but in reverse
  return date_to_string(read_attribute(:starting_at), I18n.t('date.formats.default') )
end
person Andrew Cetinic    schedule 30.04.2012
comment
Привет, Эндрю, рельсы все равно не позаботятся об этом, если я использую text_field в представлении для даты и времени, где значение находится в стандартном формате рельсов? Когда я сказал, что не знаю, как это сделать, я на самом деле имел в виду, что хочу упростить выбор даты (используя средство выбора даты, поскольку оно не будет предлагать простые раскрывающиеся списки), а время также легко выбрать каким-либо образом. (Я обновлю Вопрос). - person user1116573; 02.05.2012

В конце концов, проще всего было просто использовать text_field. Мне просто нужно найти средство выбора даты и времени (возможно, jquery UI).

person user1116573    schedule 15.06.2012