Ako na SEO URL, môj prvý RoR plugin fancy_string

Plugin rozširuje štandardnú triedu String o metódu fancy. S ňou možno pohodlne prevádzať reťazce typu “ako zväčšiť pamäť” na “ako-zvecsit-pamat”. Využití je niekoľko, napríklad tzv. SEO url.

"ako zväčšiť pamäť".fancy # => "ako-zvacsit-pamat"

Github, ako úložisko open source používam už nejaký ten rok. Čerpám odtiaľ plno Ruby on Rails pluginov, nikdy som tam však neprispel vlastným kúskom kódu. Až doteraz, dokým som si trochu nenaštudoval ako sa píšu pluginy do RoR. Tu je výsledok môjho malého snaženia.

Ukážka použitia

Plugin sa volá fancy_string a jeho použitie je veľmi jednoduché. Stačí na reťacez, napríklad “moj reťacez” zavolať metódu fancy.

"moj reťacez".fancy
# => "moj-retazec"

Download a inštalácia pluginu

Plugin je umiestnený na službe GitHub: http://github.com/kelso/fancy_string. Ištaláciu do existujúceho RoR projektu spravíme takto (predpokladom je nainštalovaný balíček git-core):

cd vendor/plugins
git clone git://github.com/kelso/fancy_string.git

Reálna ukážka – použitie SEO Url

SEO URL je užitočné kvôli vyhľadávačom. Kľúčové slová, napríklad z názvu vášho článku, sú obsiahnuté priamo v adrese – a teda google ich nájde ešte lepšie.

Predstavme si, že máme articles kontrolér a v ňom metódu show, ktorá načítava článok:

def show
  @article = Article.find(params[:id])
end

1. krok: do routes.rb zadefinujeme novú routu:

map.article 'clanok/:id/*fancy', :controller => 'article', :action => 'show'

2. krok: Použijeme helper link_to a to nasledujúcim spôsobom:

<%= link_to @article.title, article_path(@article, @article.title.fancy)
# => <a href="/clanok/1/my-first-article">My first article</a>

Tak, a SEO URL je hotové :)

About Štefan Húska

Ruby on Rails programátor
This entry was posted in Ruby on Rails and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>