Альтернативы ERB - PullRequest
       47

Альтернативы ERB

8 голосов
/ 28 декабря 2010

Я все больше увлекаюсь разработкой RoR. ERB не совсем подходит мне. Я делал это раньше с JSP. Встраивание кода Ruby в мою разметку не кажется хорошим планом, даже если логика зависит от конкретного вида. Может быть, мои страхи необоснованны, но это кажется опасным. Плюс, здесь много печатания.

Я нашел HAML, и я даю ему еще одну оценку. Если это хорошая альтернатива, возможно, вы можете дать ей хорошие ресурсы.

Помимо HAML, какие еще альтернативы ERB существуют для уровня Rails View?

Мои опасения по поводу ERB неоправданны?

Ответы [ 4 ]

12 голосов
/ 28 декабря 2010

Код Ruby, встроенный в шаблон, не является проблемой.Он предлагает Erb и Haml огромную мощь в качестве языков шаблонов.Действительно, многие языки шаблонов страдают из-за того, что в шаблонах отсутствует код (например, язык шаблонов Django).

Реальная проблема, которая иногда возникает, - это когда разработчик вставляет сложный код, или данные, извлекающие код, или код обновление данных или решений по принятию кода в шаблон.

Ruby и Rails предоставляют разработчику огромную мощность и гибкость.Ответственность за это несет разработчик.Получить ваши данные из контроллера.Переместить сложный код в помощник.И т. Д.

<%= link_to edit_post_path(@post) do %>
  Edit post "<%= @post.title %>"!!!
<% end %>

Выше приведен простой Embedded Ruby, который хорошо виден.Версия Haml:

= link_to edit_post_path(@post) do
  Edit post "#{@post.title}"!!!

Пока вы сохраняете код простым и любой сложный код перемещается в контроллер или помощник, все будет в порядке.

Обратите внимание, что Hamlи шаблоны Erb содержат одинаковое количество встроенного кода Ruby, за исключением того, что Haml отбрасывает все end s.

7 голосов
/ 28 декабря 2010

Если вам не нравится Ruby в ваших взглядах, HAML вам не поможет. Хотя синтаксически более лаконичен, он использует встроенный Ruby, как это делает ERB.

Если вы хотите вообще избежать логики в своих взглядах, взгляните на что-то вроде Усы . Он использует шаблонный стиль, который подчеркивает более строгое отделение логики от представления (безлогические представления).

4 голосов
/ 28 декабря 2010

Вы можете заглянуть в Erector для более абстрактного способа просмотра:

http://erector.rubyforge.org/

0 голосов
/ 06 июня 2013

Я, как и вы, прихожу в Rails (и Ruby), проработав некоторое время на Java. У меня была внутренняя реакция, когда я увидел ERB, вспоминая старые добрые времена JSP, прежде чем я обнаружил Velocity и Freemarker.

В любом случае, я смотрю на два языка шаблонов, которые могут вас заинтересовать:

Если Handlerbars вас интересует, посмотрите также Handlerbars.rb . Существует по крайней мере еще один проект с таким именем, но это не Ruby-порт Handlerbars, а оболочка Ruby вокруг Handlerbars.js. Так что это "настоящие панели управления".

...