ruby-on-rails - rails - haml style
¿Cuál es la mejor manera de verificar si un atributo existe y está establecido? (3)
Creo que solo puedes hacer @element.attribute? (por ejemplo, @element.link? ) (Supongo que podríamos llamarlo "atributos mágicos".)
Esto comprueba
- El atributo existente en el modelo.
- el valor no es nulo
Exactamente lo que quieras.
Tengo una vista común que enumera dos modelos diferentes. La única diferencia es que al configurar el link_to acción, uno de los modelos tiene un atributo de link y el otro no. Quiero verificar si el atributo de link existe, y si lo tiene, verificar si está establecido. Tengo lo siguiente que funciona, pero me preguntaba si había una mejor manera.
%li
- if @element.has_attribute?("link") && @element.link
= link_to @element.title, @element.link
- else
= link_to @element.title, @element
Intenta usar los atributos hash. Este hash devolverá una key => value asignación de key => value de todos los atributos de un objeto activerecord.
if @element.attributes[''link'']
# Here we are
else
# default
end