Postanowiłem zorganizować w swojej apce dziennik wpisów.
Wymyśliłem, że dane wprowadzane przez użytkownika (lub aktualizacje) będę zapisywał do jednej z kolumn “dziennika wpisów” jako hash.
I tak oto wpisuję:
Po akcji create dla przykładowego modelu Customer tworzę:
@customer.attributes.to_hash
co daje coś takiego:
my_hash = {"id"=>67793, "name"=>"Kowalski", "given_names"=>"Jan", "birth_date"=>Sun, 06 Jul 1999, "note"=>"", "user_id"=>1, "created_at"=>Wed, 07 Oct 2015 22:11:41 CEST +02:00, "updated_at"=>Wed, 07 Oct 2015 22:11:41 CEST +02:00}
a po przykładowej zmianie wartości w kolumnie “note”, po akcji update mam:
@customer.previous_changes.to_hash
{“note”=>["", “Test”], “updated_at”=>[Wed, 07 Oct 2015 22:11:41 CEST +02:00, Wed, 07 Oct 2015 23:08:44 CEST +02:00]}
Teraz chciałem “po ludzku” przedstawić to, więc
my_hash.each do |k,v|
puts "#{k} = #{v.to_s}"
end
ale wywala mi błąd na polach typu “Date”
Pytania:
- Czy Waszym zdaniem dobrze wpisuję tego hasha do bazy?
- Co robię źle, że wywala mi błąd:
syntax error, unexpected tCONSTANT, expecting =>
…"=>1, “created_at”=>Wed, 07 Oct 2015 22:11:41 CEST +02:00, "…
?
A może - Waszym zdaniem - warto to zapisywać do bazy w innym formacie?