2009-08-06 7 views

Répondre

4

Vous pouvez utiliser « content_tag », ce qui est en fait plus court, mais peut-être plus attrayant, en gardant HTML de vos blocs de rubis:

<%= content_tag :td, "Flow Number" if approved %> 

Sinon, vous pourriez envisager d'écrire une aide - qui peut être attrayant si vous avez besoin de réutiliser une logique similaire sur toute la page (ou sur plusieurs pages).

+0

Merci pour cela, Neil. Plus d'options est/sont ce que je cherche. Je vais devoir regarder un peu plus dans le content_tag. Nous l'utilisons pour insérer du contenu d'une page à un modèle, mais pas de la façon dont vous l'avez ici. Ça pourrait être sympa. –

+0

Oups, je veux dire que nous utilisons content_for. Je ne connaissais pas content_tag, c'est bien. –

2

Peut-être HAML?

Ce serait:

- if approved? 
    %td Flow Number 

Pas exactement ce que vous êtes après que je sais.

+0

Toujours intéressé par de nouvelles choses, même si je finis par décider que c'est indésirable. Je vais vérifier, merci pour cela. –

0

Oui, je pense qu'une méthode d'aide utilisant content_tag en interne serait la meilleure façon courte. En utilisant une méthode d'aide, vous pouvez aussi céder à la sortie désirée comme ceci:

# in view helper 
def show_if(condition, wrapper_tag) 
    condition ? content_tag(wrapper_tag, yield) : '' 
end 

# in view 
<%= show_if(approved, :td) {'Flow Number'} %> 

ou

# in view helper 
def show_if(condition) 
    condition ? yield : '' 
end 

# in view 
<% show_if(approved) do %> 
    <td>Flow Number</td> 
<% end %> 

J'aime cette dernière méthode pour une façon générique agréable pour afficher ou masquer des blocs entiers sur la base une condition. J'espère que cela pourra aider!

Questions connexes