Мне было интересно, можно ли будет очистить или реорганизовать мои представления так, чтобы у меня было меньше кода Ruby. HTML часто становится громоздким, потому что в нем так много Ruby-кода.
Я думал о том, чтобы переместить все элементы Ruby в помощники и назначить каждую функцию (ссылки, теги и т. Д.) Методам.
Пример. Проблема становится намного хуже с более сложным макетом.
<div class="sidebar">
<div id="art_nav">
<%= link_to "Previous", art_path(@previous), :remote => true, :class => "prev" unless @previous.nil? %>
<%= link_to "Next", art_path(@next), :remote => true, :class => "next" unless @next.nil? %>
</div>
</div>
станет:
<div class="sidebar">
<div id="art_nav">
<%= link_to_previous %>
<%= link_to_next %>
</div>
</div>
Помощник:
def link_to_previous
link_to "Previous", art_path(@previous), :remote => true, :class => "prev" unless @previous.nil?
end
def link_to_next
link_to "Next", art_path(@next), :remote => true, :class => "next" unless @next.nil?
end
Кажется, это работает с простыми примерами ... но мне интересно, как мне организовать вещи, когда мне приходится делать циклы или подобное.
ОБНОВЛЕНО: добавлен пример цикла
<% arts.each do |art| %>
<h3><%= art_title %></h3>
<p><%= art_description %></p>
<div id="comments_<%= art.id %>">
<%= render :partial => "/comments/index", :locals => {:resource => art} %>
</div>
</div>
<% end %>
Что бы вы сделали?