суббота, 15 января 2011 г.

Кратко о link_to и символах

В основе лежит пост Ruby Symbols

Как очень просто и быстро в view создать линк. Используем erb и link_to (это по "науке" ActionView helper function).
Пример использовыания:
<%= link_to 'link', :action => 'myaction' %>
Вопрос, что здесь такое :action. Это и есть символ (Symbol). В rails символы используются как строки для использования в разных местах. Если будет проще, то они являются "заполнителями" для идентификаторов и строк. 
В качестве примера, будем использовать в качестве имени действия не строку, а символ:

<%= link_to 'link', :action => :myaction %>
Вы наверное спросите: как создать символ?
Для создания символов есть несколько путей.
Приведем пример, как можно создать символ :myaction.
Это можно сделать следующими способами:

<%= link_to 'link', :action => :'myaction' %>
<% myvar = 'myaction' %>
<%= link_to 'link', :action => :"#{myvar}" %>
<%= link_to 'link', :action => myvar.intern %>
<%= link_to 'link', :action => "myaction".to_sym %>

В чем сокральная прелесть симоволов, а в том, когда символ создан, во время выполнения программы в памяти хранится только одна его копия. То есть Ruby, вместо того чтобы делать копию за копией, хранит ссылку на адрес единственной ячейки памяти.
Экономия памяти, господа, ЭКОНОМИЯ!!! =)

Комментариев нет:

Отправить комментарий