Вложенные модели, формы и интеграция date_select FormHelper

Я следовал учебному руководству Ryan Bates на вложенных моделях. Нескольким из моих вложенных моделей связали даты с ними. В моих миграциях они - на самом деле тип "Дата".

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

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

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

Править: before_save, кажется, является более многообещающим, но по некоторым причинам, значение является нолем, входя, прежде чем сохранят, но видимо в дампе журнала.

Редактирование 2: Интересно, это только, кажется, проблема на 'обновлении', не на 'создают'.

7
задан davidstites 27 January 2010 в 22:26
поделиться

2 ответа

Я бы очень надеялся, что это сработает и для date_select:

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

2
ответ дан 7 December 2019 в 12:20
поделиться

Это решение:

<% new_or_existing = task.new_record? ? 'new' : 'existing' %>
  <% prefix = "project[#{new_or_existing}_task_attributes][]" %>

<% fields_for prefix, task do |t| -%>
   <%= t.date_select(:start_date, :index => task.id || nil) %>
<% end -%>

Вот объяснение того, почему это работает:

http://agilerails.wordpress.com/2009/03/11/date_select-time_select-doesnt-work-with-auto_prefix- object /

3
ответ дан 7 December 2019 в 12:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: