Czy istnieje sposób na niestandardową serializację dla pól w szynach, metoda uruchamiana, gdy pole jest zapisywane i ładowane w celu konwersji z/do łańcucha, który ostatecznie jest zapisywany w bazie danych .Niestandardowa serializacja dla pól w Railsach
W szczególności chcę mieć pole typu symbol, taki jak płeć, z możliwymi wartościami: męski i żeński przechowujący "męski" i "żeński" w bazie danych. Istnieją pewne obejścia, takie jak:
def gender
read_attribute(:gender).try(:to_sym)
end
ale pozostawia obj.attributes niezmienione, więc jest to nieszczelny abstrakcją.
Link do szczegółów wydaje się być już niestety nieaktualny. Czy był jakiś powód, dla którego zdefiniowałeś 'dump' i' load' jako metody instancji i przekazałeś nową instancję do 'serialize'? W przeciwieństwie do definiowania ich jako metod klasowych i przekazywania klasy do "serializacji"? Próbuję to zrozumieć, dzięki! – plainjimbo
Tutaj robię dzikie zdjęcia w ciemności, ale wygląda na to, że serializacja ActiveRecord użyje dowolnego obiektu odpowiadającego na ': dump' i': load'. Więc nie. Nie ma powodu, dla którego są to metody instancji w przeciwieństwie do metod klasowych. – RyanScottLewis