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