Capitalize dla pola formularza

mam pole w formularzu, do ktorego wpisuje sie jakies słowo. Powiedzmy ze wpisujemy “hello” . Chiałbym zeby po wysłaniu formularza w bazie sie zapisało jako “Hello”. Zaczynam dopiero z railsami i niebardzo wiem jak to zrobić. Domyslam sie ze pewnie w model trzba cos stworzyć ale nie wiem jak :frowning:

Tzn Twoim problemem jest zamiana “hello” na “Hello” (i nie wiesz gdzie to wstawić) czy w ogóle chodzi o zapisanie danych? Jeśli to pierwsze to zrób np swój setter w modelu dla tego atrybutu:

class MyModel < ActiveRecord::Base def jakis_atrybut=(wartosc) super(wartosc.capitalize) # gdyby nie działalo to daj self[:jakis_atrybut] = wartosc.capitalize end end
Jeśli w ogóle nie wiesz jak operować na modelu to nie ma sensu tego opisywać bo i tak dalej (zapewne) nie ruszysz. Trzeba wpierw coś poczytać, a potem się zabierać za pisanie :).

dzieki! mam juz zrobione całe zapisywanie do bazy tylko wlasnie chodziło mi o formę zapisu. zrobiłem cos takiego:

def before_save self[:kategoria] = kategoria.capitalize end
i to działa!
ja wlasnie cały czas robiłem samo: self[:kategoria].capitalize i mi nie działało, a to trzba było tak jaknapisałes: self[:kategoria] = kategoria.capitalize Dzieki :slight_smile:

To jeszcze Ci powiem czemu Twoja wersja nie działała :). Spójrz na kod:

name = "radarek" name.capitalize puts name name.capitalize! puts name
Czyli jak chcesz zmienić swój obiekt to albo musisz mu przypisać nową wartość (jak u mnie), albo użyć metody z ‘!’, która zmieni odbiorcę metody. Zatem to też zadziała:

def before_save self[:kategoria].capitalize! end
Pamiętaj tylko, że występowanie metod z ‘!’ nie jest regułą. To po prostu osobna metoda.