2010-01-26 1 views
7

Я следовал за Райан Бейтс tutorial на вложенных моделях. Некоторые из моих вложенных моделей имеют даты, связанные с ними. В моих миграциях они на самом деле являются типом «Дата».Вложенные модели, формы и date_select FormHelper интеграция

Некоторые вещи я пытался и проблемы, я столкнулся

  1. date_select - может обрабатывать префикс формы объекта, но не гнездились модели атрибутов
  2. select_year - не работает с формой объект
  3. обычный выбор, заполненный годом, используя (Time.now.year - 100) .. (Time.now.year) и переопределяя attr accessor start_date и end_date, чтобы принять значение в select для формирования даты и передачи этого назад. работает только при создании, а не в обновлении
  4. изменение типа данных поля на строку и использование регулярного выбора, заполненного годом, с использованием (Time.now.year - 100) .. (Time.now. год) работает, но при редактировании, оно не будет заселить выбора текущей информации

Любые идеи или намеки были бы полезны.

Edit: before_save кажется более перспективным, но по какой-то причине, то значение равно нулю приходит в перед сохранением, но виден в log dump.

Edit 2: Интересно, что это только кажется, проблема на 'update', а не на 'create'.

ответ

2

Я серьезно надеюсь, что это работает для date_select, а также:

http://jeffperrin.com/2009/06/04/rails-nested-forms-and-collection_select/

+0

К сожалению, это не так. Вы должны применить немного взлома, чтобы заставить его работать. <% date_select ('attorney [memberships_attributes] [NEW_RECORD]', "enddate",: start_year => 2015,: end_year => 1900,: order => [: month,: day,: year],: prompt => { : day => 'День',: month => 'Month',: year => 'Year'})%>. «Адвокат [memberships_attributes] [NEW_RECORD]» имеет префикс на выбор, а затем использует правильный атрибут. Это работает, только если вы можете заменить «NEW_RECORD» во время создания вложенной модели, что невозможно. – davidstites

0

Возможно, это будет работать с форматическим камнем ...