2016-04-11 3 views
1

Итак, у меня есть форма редактирования, которая имеет дату начала и окончания года. Я хочу показать хранимые значения db как даты по умолчанию.Как установить и получить значение по умолчанию в date_select rails

Я попробовал этот

<%= f.input :year_start_date, :label => 'Year Start Date', :as => :date_select, :include_blank => false, 
         :input_html => { :id => 'y_start_date'}, prompt: { day: year_start_date.day, month: Date::MONTHNAMES[year_start_date.month], year: year_start_date.year}, data: year_start_date %> 

поэтому его штраф и начал показывать дб сохраненных значений.

Но вопрос, когда меняется только месяц, параметры будут

"year_start_date(1i)" => "", "year_start_date(2i)" => "3", "year_start_date(3i)" => "" 

и в контроллере делает [ school_params['year_start_date(1i)'], school_params['year_start_date(2i)'], school_params['year_start_date(3i)'] ].join('-').to_date

, поскольку она содержит пустые строки, которые бросаются недопустимая ошибка даты.

Я хочу значения по умолчанию (в данном случае дату и год), когда ничего не выбрано. Как достичь этого?

Edit 1:

PARAMS

{ 
       "utf8" => "✓", 
      "_method" => "patch", 
    "authenticity_token" => "abcffdgfdgfgfgf==", 
       "school" => { 
         "name" => "Test School", 
        "board_id" => "1", 
    "board_registration_number" => "", 
        "subdomain" => "testschool", 
         "email" => "", 
         "website" => "", 
         "address" => "NA", 
         "city" => "NA", 
         "pincode" => "", 
        "country_id" => "1", 
       "country_state" => "Tamil Nadu", 
         "phone" => "NA", 
        "inc_year" => "", 
        "handler_id" => "14451", 
      "year_start_date(1i)" => "", 
      "year_start_date(2i)" => "1", 
      "year_start_date(3i)" => "", 
      "year_end_date(1i)" => "", 
      "year_end_date(2i)" => "", 
      "year_end_date(3i)" => "" 
    }, 
       "button" => "", 
      "controller" => "sat/schools", 
       "action" => "update", 
        "id" => "2" 
} 
+1

Это не ответ, это предложение: используйте плагин 'datepicker' js. – Emu

+0

конвертировать в формат даты – uzaif

+0

@uzaif am coverting to date_format с использованием .to_date. Даже я попытался использовать Date.new (school_params ['year_start_date (1i)']. To_i, school_params ['year_start_date (2i)']. To_i, school_params ['year_start_date (3i)']. To_i) и по-прежнему получать ту же ошибку , – Jazmin

ответ

0

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

f.input :year_start_date, :label => 'Year Start Date', as: :string, input_html: { type: "date" }

Смежные вопросы