Recientemente convertí algunas de mis plantillas de ERB a Haml. En general, se volvió más limpio y más agradable, pero las definiciones de los botones comenzaron a apestar.Obtener ruta de ruta dinámicamente
quiero convertir este
= link_to t('.new', :default => t("helpers.links.new")),
new_intern_path,
:class => 'btn btn-primary' if can? :create, Intern
a algo como esto
= new_button Intern
Tengo varias otras entidades, además de Intern
lo que todas las demás páginas se beneficiarían de esto también.
Por lo tanto, he escrito este código
def new_button(person_class)
return unless can?(:create, person_class)
new_route_method = eval("new_#{person_class.name.tableize}_path")
link_to t('.new', :default => t("helpers.links.new")),
new_route_method,
:class => 'btn btn-primary'
end
Está funcionando como se esperaba. Simplemente no estoy seguro de la llamada eval
(porque es malo y todo eso). ¿Hay una manera más simple y menos malvada?
Sí, eso es mucho mejor! –