2016-04-11 11 views
1

So habe ich ein Bearbeitungsformular, das Jahr Start-und Enddatum hat. Ich möchte db gespeicherte Werte als Standarddaten zeigen.So legen Sie fest und erhalten den Standardwert in date_select Schienen

Ich habe versucht, diese

<%= 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 %> 

So seine feine und begann db gespeicherten Werte zu zeigen.

Aber das Problem ist, wenn ich nur Monat ändern, werden Parameter

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

sein und in der Steuerung [ school_params['year_start_date(1i)'], school_params['year_start_date(2i)'], school_params['year_start_date(3i)'] ].join('-').to_date

mache, da es leere Strings enthält es ungültiges Datum Fehler auslöst.

Ich möchte die Standardwerte (in diesem Fall Datum und Jahr), wenn nichts ausgewählt ist. Wie erreiche ich das?

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

Dies ist keine Antwort, dies ist ein Vorschlag: Verwenden Sie 'datepicker' js plugin. – Emu

+0

in Datumsformat umwandeln – uzaif

+0

@uzaif am umwandeln in date_format mit .to_date. Ich habe sogar versucht mit Date.new (school_params ['year_start_date (1i)']. To_i, schul_params ['year_start_date (2i)']. To_i, schul_params ['year_start_date (3i)']. To_i) und immer noch denselben Fehler zu bekommen . – Jazmin

Antwort

0

Statt der Verwendung dieses hässliche Datum/Datumzeit Eingabe Sie einfach die Datumsauswahl durch den Browser bereitgestellt nutzen können, ohne zusätzliche Bibliotheken hinzufügen zu müssen:

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