Si necesita funciones adicionales en su vista, normalmente las declara dentro de un ayudante.
Para cada controlador, si hay un ayudante, se carga automáticamente. Por ejemplo, si tiene un PeopleController, en la carpeta app/helpers
, debería haber una people_helper.rb
, y debería tener este aspecto
module PeopleHelper
def name
#do something
username
end
end
Otra alternativa, muy limpio, es utilizar el Presenterpattern, pero creo que es es menos común (por desgracia).
De lo contrario, si necesita varias líneas de código de rubí en el interior una vista erb, que trato de evitar, prefiero el siguiente estilo:
<%
counter_1 = 0
counter_2 = 1
do_some_more_prep_here
%>
<% @records.each do |rec|%>
<%# do something with the prepped date in each row %>
<% end %>
también para mí código de sangrado es más importante que la muesca html , entonces preferiré algo como
<table>
<% @rows.each do |row| %>
<tr>
<td><%= row.item1 %></td>
<% if row.some_test %>
<td><%= row.item2 %></td>
<% end %>
</tr>
<% end %>
</table>
Pero siempre estoy muy interesado en escuchar opiniones diferentes en este asunto.
¿Por qué intenta crear una función en una vista? Lo más probable es que entre en el modelo, o si no en el controlador, pero definitivamente no en la vista – jigfox
Disculpa, simplemente escribí un código aquí como un ejemplo. – ben