Archív pro rubriku “Ruby on Rails”

Docela mě překvapilo, že v šablonách pro ActionMailer nejsou dostupné helpery definované v application_helper.rb. Naštěstí řešení je jednoduché, stačí upravit objekt ActionMaileru takto:

class FooMailer < ActionMailer::Base
	helper :application
	....
end

Comments Bez komentářů »

Určitě to znáte – vymyslíte nějakou skvělou věc, odladíte si jí ve Firefoxu (všechno funguje jak má), testujete v IE a nefunguje nic. Dnes se mi stalo něco podobného, potřeboval jsem přes AJAX vkládat řádky do tabulky, ale IE stávkovalo a tvrdohlavě vracelo Object Error. Kód vypadal hrozně jednoduše, nebylo na něm co zkazit, takže chyba musela být někde jinde:

<table id="results-table" cellpadding="0" cellspacing="0"></table>

a na serveru:

render :update do |page|
	page.insert_html :bottom, 'results-table', :partial => 'list'
end

Finta je jednoduchá – IE (alespoň verze 6) umí vkládat pouze do <tbody>, takže tohle už funguje:

<table id="results-table" cellspecing="0" cellpadding="0">
	<tbody id="results-table-body"></tbody>
</table>

a:

render :update do |page|
    page.insert_html :bottom, 'results-table-body', :partial => 'list'
end

Comments 1 Komentář »

První oficiální verze webového serveru pro běh Ruby aplikací. V tuhle chvíli je Mongrel pravděpodobně nejlepší volbou pro běh Ruby on Rails aplikací (najdete ho na téměř všech zahraničních hostingách, které Ruby on Rails nabízejí), je snadno konfigurovatelný, dobře spolupracuje s Apachem a zkrátka „just works“. Kupodivu „just works“ i ve Windows, což je spíš výjimka a dokonce je podporován i v RadRails pluginu pro Eclipse.

Comments Bez komentářů »

Další verze tohoto skvělého frameworku je na světě (více zde). Verze 1.2 přidává nové funkčnosti (UTF8, REST resources a další) a zároveň se snaží zachovat stávající API pro zpětnou kompatibilitu. Zastaralé funkčnosti budou vyřazeny ve verzi 2.0. Pro instalaci/upgrade pomocí Ruby Gems pouze spusťte.
gem install rails –include-dependencies

Comments Bez komentářů »

Před nějakou dobou vyšla druhá edice skvělé knihy Agile Web Development with Rails od vydavatelství Pragmatic Programmers. Na rozdíl od první edice je psána pro nové Ruby on Rails 1.2, které jsou v současné době jako Release Candidate 2. Neboli zatímco většina české počítačové literatury nezvládá popisovat ani aktuální verzi, tak tahle popisuje verzi, která aktuální teprve bude. Je toho dosaženo pomocí úzké spolupráce autora knihy s vývojáři Ruby on Rails, kdy se kniha upravovala podle postupného přidávání nových funkčností (respektive David Heinemeier Hansson, autor Ruby on Rails, je přímo uvedený jako spoluautor knihy). Druhá edice si drží vysokou úroveň a kromě novinek ve verzi 1.2 rozšiřuje například části o automatických testech, migracích nebo AJAXu.
Osobně jsem sáhnul po PDF verzi, ($23,50), protože jsem chtěl vyhledávání a mám rád její pohodlné funkčnosti jako křížové odkazy v dokumentu, odkazy přímo na stažení příkladů a na externí zdroje, kvalitní obsah vždy po ruce v levém panelu atd. Pokud byste chtěli papírovou verzi, tak doporučuju raději z Amazonu, kde je o třetinu levnější ($26,37).

Comments 1 Komentář »

Původně jsem si myslel, že tak třeba jeden díl seriálu o Ruby on Rails týdně bude akorát. Samozřejmě to byla hrozně naivní představa, do které pořád něco lezlo. A přestože jsem perfekctionista a rád po sobě nechávám kvalitní práci, tak tentokrát jsem se rozhodnul ze svých požadavků trochu slevit, aby vůbec někdy něco vzniklo. Takže zkrátka jsem nevěnoval tolik času zkoušení – pokud narazíte na nějaké nepřesnosti, tak budu rád, když se o ně podělíte v komentářích. Pro začátek je zde popis konvencí pro návrh databáze, jejichž používáním si můžete v RoR ušetřit spoustu psaní.

Pokračování článku »

Comments Bez komentářů »

Týden se s týdnem sešel a konečně jsem se rozhodnul, jakým způsobem bych chtěl seriál o Ruby on Rails dát dohromady. Koho čekání neomrzelo, tak se může začíst do prozatimního úvodu (proto ten nultý díl) a během víkendu začátkem týdne se zde objeví specifika návrhu databáze pro co nejjednodušší použití v Rails.
PS: Jediný známý zápis nuly v římských číslicích je písmeno N z latinského nullae, proto to N v nadpisu. Více na skvělé Wikipedii.

Pokračování článku »

Comments Bez komentářů »

Přihlašování a správa uživatelů je tak typická činnost, že v Ruby on Rails pro ní najdete spoustu pluginů. Pokud chcete něco jednoduchého, tak výběrem Crypted Authentication Pluginu určitě neuděláte chybu – jednodušší už to být nemůže. Celé jeho použití se skládá ze dvou kroků:

  1. vytvoření sloupců v databázové tabulce pro uživatelské jméno, hash a salt
  2. přidání volání funkce make_authenticatable do modelu

Plugin se postará o zahashování hesla pomocí SHA-1 a přidá do modelu metodu authenticate pro ověření uživatele. A protože neřeší nic dalšího, tak je jeho implementace do aplikace pohodlná a bezbolestná. Velice přátelská MIT licence je samozřejmostí.

Comments Bez komentářů »

Na světě je asi 6 miliard lidí a zhruba tolik způsobů jak zapsat úplně jednoduchou věc, jako je datum. Nejjednodušší řešení často bývá přidat nějaký JavaScript kalendář, například DHTML/JavaScript calendar s příjemnou LGPL licencí. A protože už jsem správně líný DRY (Don’t Repeat Yourself) programátor, tak jsem se podíval po něčem, co by mi práci s ním v Rails zpříjemnilo. Chvilka googlování odhalila DateBocks, vynikající plugin pro Rails aplikace. Po krátké konfiguraci ho můžete používat jednoduše takto:
<%= datebocks_field('news', 'date') %>
Pokud nepatříte mezi masochisty, kterým se chce probírat všemi zdroji pro instalaci pluginů, tak vynechte z návodu první krok a při instalaci pluginů používejte cestu k jejich repository takto (spouštějte z adresáře vaší Rails aplikace):
ruby script/plugin install http://svn.rails-engines.org/plugins/engines engines
a
ruby script/plugin install http://svn.toolbocks.com/plugins/datebocks_engine/ datebocks_engine
Měli byste vidět instalaci jednotlivých souborů, hlášku Plugin not found na konci můžete s klidem ignorovat.

Comments 1 Komentář »

Připadnul na mě nevděčný úkol – naučit několik lidí to málo, co jsem se o Ruby on Rails zatím naučil já. A protože psát jim to na ICQ mě nebaví, tak jsem se rozhodl popis trochu rozšířit i pro úplné začátečníky a umístit sem. Jako první je samozřejmě instalace, aby bylo možné vůbec zkoušet Hello World.

Pokračování článku »

Comments Bez komentářů »