J'ai une vue commune qui répertorie deux modèles différents. La seule différence est que lors de la définition de link_to
action, l'un des modèles a un attribut link
et l'autre pas. Je veux vérifier si l'attribut link
existe, et si c'est le cas, vérifiez s'il est défini. J'ai ce qui suit qui fonctionne, mais je me demandais s'il y avait une meilleure façon.
%li
- if @element.has_attribute?("link") && @element.link
= link_to @element.title, @element.link
- else
= link_to @element.title, @element
Je crois que vous pouvez simplement faire @element.attribute?
(par exemple. @element.link?
) (Je suppose que nous pourrions l'appeler "attributs magiques".)
Cela vérifie
Exactement ce que vous voulez.
Essayez d'utiliser le hachage des attributs. Ce hachage renverra un key => value
mappage de tous les attributs d'un objet activerecord.
if @element.attributes['link']
# Here we are
else
# default
end