Przez lata napotkałem na różne problemy z różnymi stronami, w których użytkownicy umieszczają spacje na początku i końcu pól tekstowych i tekstowych. Czasami powodują problemy z formatowaniem/układem, czasami powodują problemy z wyszukiwaniem (np. Kolejność wyszukiwania wygląda źle, nawet jeśli tak naprawdę nie jest), czasami faktycznie powodują awarię aplikacji.ActiveRecord: spraw, aby wszystkie pola tekstowe zawierały pasek przed ich zapisaniem, o ile nie podano inaczej.
Pomyślałem, że byłoby to użyteczne, zamiast włożyć kilka wywołań funkcji before_save, tak jak zrobiłem to w przeszłości, aby dodać funkcję ActiveRecord do automatycznego wywoływania .strip na dowolnym polu tekstowym/tekstowym przed zapisaniem, chyba że powiedz, żeby nie, np. z do_not_strip :field_x, :field_y
lub czymś podobnym na górze definicji klasy.
Zanim pójdę i wymyślę, jak to zrobić, czy ktoś widział ładniejsze rozwiązanie? Dla jasności, już wiem, że mogę to zrobić:
before_save :strip_text_fields
def strip_text_fields
self.field_x.strip!
self.field_y.strip!
end
, ale szukam lepszej drogi.
okrzyki, max
Bardzo dziękuję @ Wukerplank, włączyłem to i wydaje się, że to robię :) Myślę, że lepiej z punktu widzenia co najmniej-niespodziewanego jawnie wymienić pola tekstowe, które chcę usunąć w modelach, raczej niż wymieniać te, których nie chcę rozbierać tak, jak miałem pierwotnie. Przy okazji link do instalacji na twojej stronie wtyczki nie działa: myślę, że po prostu musisz zamienić "https" na "git" na początku. Jest tam także miejsce do wstawienia, prawdopodobnie do debugowania? Twoje zdrowie! max –
Tak, myślałem także, że jawnie deklarując, że pola będą miały bardziej czytelny model. I dzięki za wskazówki, posprzątam to :) – Wukerplank
gdzie dodałeś narzędzie do ściągania strun? Umieszczam go w lib/modules i nie ładuje się –