Kategória: Ruby on Rails

  • Moja prvá reálne používaná Ruby on Rails aplikácia

    Dnes Vám predstavím svoju prvú reálne používanú Rails appku. Síce ju používam len ja, keďže je to aplikácia len pre jedného užívateľa, ale to nevadí ;). Používam ju každý deň a ušetrila mi už kopec času.

    notes

    Aplikáciu môžete nájsť na Githube a volá sa Notes. Ako z názvu vyplýva ide o aplikáciu na ukladanie poznámok. Nič špeciálne, ale o to viac praktické. Vytvoril som ju preto, aby som skonsolidoval svoje technické poznámky, čo som si robil v robote a aby som k nim mal rýchly prístup vrátane vyhľadávania.

    Nahádzal som do nej všetky svoje poznámky, ktoré som mal predtým v .txt súboroch. Okrem toho si tam ukladám aj veci týkajúce sa Rails, ktoré chcem mať hneď  po ruke. Teraz keď potrebujem nájsť niečo čom som už predtým použil/videl, tak namiesto prehrabávania sa mojimi poznámkami, alebo hľadania cez google mám veci po ruke za pár sekúnd, namiesto minút. Nárast efektivity je očividný ;).

    Vyhľadávanie je rýchle aj vďaka tomu, že výsledky sa vypisujú už vtedy keď ešte len zadávam hľadané slovo, čiže väčšinou sa k niečom dostanem doslova za sekundu.

    A kde to môžem vyskúšať?

    Ako som spomínal, tak aplikácia je robená len pre jedného užívateľa. Avšak ak ste trochu technický zdatný, tak si ju môžete sami nahodiť na Heroku a používať ju pre seba. Návod na spojazdnenie aplikácie nájdete na už spomínanom Githube.

  • Ruby on Rails: Lokalizované formulárové polia pre čísla a dátum

    Ak ste v Rails programovali aplikáciu pre slovenských užívateľov, tak ste sa mohli stretnúť s tým, že dáta vo formulároch sa nevypisujú v takom formáte, ako by ste si želali. Napríklad čísla s desatinnou „bodkou“ namiesto čiarky. Alebo dátumy vo formáte 2013-07-19 namiesto 19. 7. 2013.

    Bohužiaľ s týmto si štandardná i18n rails lokalizácia neporadí, preto je vhodné napísať si vlastné helper metódy. Toto sú tie moje, fungujúce v Rails 4.

    # helpers pre formularove polia
    # mozete ich vlozit do app/helpers/application_helper.rb
    class ActionView::Helpers::FormBuilder
      def localized_date_field(date, params_hash = {})
        params_hash[:value] = object.send(date).nil? ? nil : I18n.localize(object.send(date))
        text_field date, params_hash
      end
    
      def localized_number_field(number, params_hash = {})
        params_hash[:value] = object.send(number).nil? ? nil : object.send(number).to_s.sub('.', ',')
        text_field number, params_hash
      end
    end
    

    Potom Vám stačí v šablóne pre formulár zavolať len nasledujúci kód pre dátum:

    <%= f.localized_date_field :date %>
    

    prípadne číslo:

    <%= f.localized_number_field :number %>
    

    Ak máte nastavené aj locale na slovenčinu, tak sa už dátumy a čísla budú zobrazovať správne.

    Avšak ostáva tu ešte jeden problém. A to, že Rails pri ukladaní čísla odignoruje všetko čo je za čiarkou. Čiže z 3,14 sa stane 3.

    Toto treba ošetriť na úrovni modelu a treba vytvoriť vlastnú set metódu pre daný atribút. Príklad pre atribút number.

    # hack, aby sa ',' konvertovala na '.'
    def number=(value)
      if value.respond_to?('sub')
        value.sub!(',', '.')
      end
      write_attribute(:number, value)
    end
    

    Čo sa dátumu týka, tak tam Rails korektne spracuje aj dátum zadaný v slovenskom formáte.

    Nie je na to nejaký gem?

    Ale áno je, volá sa delocalize a toto všetko robí automaticky. Bohužiaľ s Rails 4 nefunguje, čiže mne bol nanič ;). Moje Ruby a Rails znalosti nie sú ešte na takej úrovni, aby som ho dokázal upraviť na Rails 4. A okrem toho sa mi ten kód v ňom zdal prasácky. Ale to možno bude len tými znalosťami ;).

  • Začíname s Ruby on Rails

    Chcete sa naučiť programovať v Ruby on Rails a neviete kde začať? Môžete to skúsiť ako ja.

    1. Ako prvé sa uistite, že viete dobre po anglicky. Teda aspoň rozumiete písanému textu. Bez angličtiny sa nezaobídete. Po slovensky alebo po česky totiž nenájdete nič použiteľné. Bohužiaľ.
    2. Začnite s Rails Tutorial. Presne tak, začnite tu a nie s oficiálnou dokumentáciou. Dôvod? Je tam vysvetlené všetko. Nielen Ruby on Rails, ale celý ROR stack. HTML, CSS, Javascript, ruby… A okrem toho aj test driven development, git, alebo aj nasadzovanie aplikácie do produkcie cez heroku. Ale nie, že to budete len čítať. Skúšajte si aj príklady a uistite sa, že tomu aj rozumiete. Odporúčam to každému začiatočníkovi!
    3. Máte prečítaný a hlavne pochopený rails tutorial? Výborne. Začnite programovať! A popri tom si   čítať Rails Guides. Getting started with rails bude zrazu oveľa ľahšie na pochopenie. A v ostatných kapitolách si môžete hľadať presne čo treba.
    4. Ok. Programujete, ďalej sa učíte a stále tomu niečo chýba? U mňa to bolo podobné a pomohla mi kniha Agile Web Development with Rails 4. Dávam ju až sem, lebo podľa mňa nie je vhodná pre začiatočníkov.
    5. ??? Pravdu povediac neviem, sem som ešte nedošiel ;) Ale ak máte nejaké tipy, tak sem s nimi.
    6. Zasekli ste sa niekde? Nevadí. Použite google. Je totiž dosť pravdepodobné, že niekto iný už podobný problem riešil a hlavne aj vyriešil. Väčšinou na Stack Overflow.

    Každopádne musím povedať, že programovanie v Rails ma baví. A to sa neživím programovaním. Proste ma to baví a je v tom radosť robiť web aplikácie. Na jednej rozsiahlejšej práve pracujem. Je určená pre uľahčenie života konkurzným správcom. Zadávajú sa do nej pohľadávky ku konkurzom a reštrukturalizáciám a výstupom bude vééľáľa rôznych papierov, čo treba posielať na súd. Dúfam, že bude mať úspech. A ak nie, nevadí, aspoň som sa pri nej dosť naučil.

  • Hľadám slovenský/český Ruby on Rails hosting

    Máte niekto tip na kvalitný Rails hosting? Ideálne slovenský, alebo český a kľudne aj s podporou Rails 4. Môj obľúbený websupport.sk ma v tomto zatiaľ sklamal.

    Ak neviete poradiť, tak poprosím aspoň retweet. Vďaka.

  • Bye bye PHP

    Ani neviem ako, ale nedávno som sa dostal k Ruby on Rails. Samozrejme, že o tomto frameworku som vedel už roky, ale nejak som mu nevenoval pozornosť. Ale teraz som sa rozhodol naučiť sa v ňom programovať.

    Začal som študovať railstutorial, ktorý už finišujem a pravdupovediac sa neviem dočkať, kedy v rails naprogramujem niečo vlastné. Páči sa mi Ruby a páči sa mi aj Rails, ktorý je vynikajúcim a komplexným web frameworkom.

    Yeah!