Problem z datą i kalendarzem

Przy próbie dodania ogłoszenia wyskakuje błąd:

Mysql::Error: Column 'data' cannot be null: INSERT INTO `ogloszenias` (`miejsce`, `data`, `created_at`, `title`, `updated_at`, `description`, `ilosc`) VALUES('1', NULL, '2009-10-10 17:48:53', '1', '2009-10-10 17:48:53', '1', 123)
kod z view:

[code]


<%= f.label ‘Data’ %>

<% CalendarDateSelect.format=(:db)%>
<%= calendar_date_select_tag :data , Time.now.to_s(:db), :time => true %>

[/code] Z góry dziękuję za pomoc.

Używasz może pluginu validates_date_time?

Kilka problemów:

  • łamiesz podstawowe konwencje stosowane w RoR - staraj się nie używać polskich nazw, takich jak “ogloszenias” czy “data”
  • calendar_date_select_tag nie jest helperem RoR - wyguglałem, że chodzi o gem calendar_date_select, jednak nigdy z niego nie korzystałem
  • z powyższych informacji wynika jedynie, że w bazie masz ograniczenie (constraint) NOT NULL na kolumnie “data” i nie przypisujesz nic do tego atrybutu

Jedyne co przychodzi mi do głowy, to zły atrybut name w calendar_date_select_tag - zamiast :data spróbuj użyć “ogloszenia[data]” - być może to pomoże. Generalnie sugeruję zacząć od podstaw - http://guides.rubyonrails.org/ , może także książka Agile Web Development with Rails (edycja trzecia).

O, to pewnie to, zważywszy że kolega do np. labela używa zmiennej f, czyli ma formularz w bloku.

[quote=qoobaa]Kilka problemów:

  • łamiesz podstawowe konwencje stosowane w RoR - staraj się nie używać polskich nazw, takich jak “ogloszenias” czy “data”[/quote]
    A jak już koniecznie musisz po polskiemu, to błagam, nie ogloszenias! Przecież to jest jakaś karykatura.

class Ogloszenie set_table_name "ogloszenia" end