J'ai toujours utilisé <% = quelque_code%> code> pour insérer RUBY dans HTML lors de l'utilisation de Ruby sur des rails. Je viens de remarquer que d'autres projets utilisent parfois <% = certains_code-%> code>. P>
3 Réponses :
<% = Quelqu'un_code -%> Le moins à la fin supprime la nouvelle ligne. Utile pour formater le code HTML généré, tandis que <% = Quelqu'un_code%> n'est pas. P>
Merci, Anubhaw P>
Qu'en est-il de la différence entre commencer par <% = code> vs <% code>?
@ShawnSep = code> ajuste la sortie, % code> ne fonctionne pas et est utilisé pour des trucs comme des conditionnels <% si%> code>.
Il est supprimé sur les rails 3. P>
Maintenant avec des rails 3, il n'y a pas de différence entre cette 2 formes. P>
Je ne sais pas où vous lisez cela, mais -%> arrête toujours l'ERB de produire une nouvelle ligne de fin dans les rails 3.
Selon les rails 3 Notes de version: "Vous n'avez plus besoin de placer un signe moins à la fin d'une interpolation rubis à l'intérieur d'un modèle ERB pour supprimer le retour de chariot de fuite dans la sortie HTML."
@Tim Cela signifie qu'il supprimera la trailing CR de votre sortie HTML, pas de toutes les lignes. -%> existe toujours et est toujours utile.
Cette réponse était fausse: voir https://stackoverflow.com/a/25617607/895245 à la place.
dans Ruby 2.1 (pas nécessairement avec des rails), le Exemples: P> Utilisez ERB par défaut à l'adresse suivante: https://github.com/Rails/rails/blob/fcbdac7e82725c388bf5adf56A9A9A16D4FDBE0A9A16D4FDBE0/actionView/lib/action_View/template/handlers.rb#l10 P> li>
SET - code> supprime une nouvelle ligne indiquée par anubhaw: p>
> code> li>
'-' code> option pour l'utiliser li>
ul> require 'erb'
ERB.new("<%= 'a' %>\nb").result == "a\nb" or raise
begin ERB.new("<%= 'a' -%>\nb").result; rescue SyntaxError ; else raise; end
ERB.new("<%= 'a' %>\nb" , nil, '-').result == "a\nb" or raise
ERB.new("<%= 'a' -%>\nb" , nil, '-').result == 'ab' or raise
ERB.new("<%= 'a' -%> \nb" , nil, '-').result == "a \nb" or raise
ERB.new("<%= 'a' -%>\n b" , nil, '-').result == 'a b' or raise
ERB.new("<%= 'a' -%>\n\nb", nil, '-').result == "a\nb" or raise
- code> Par défaut à l'adresse suivante: https://github.com/rails/rails/blob/fcbdac7e82725c388bf5adf56A9A9A16D4FDBE0A9A16D4FDBE0/actionView/Template/handlers/erb.rb#l77 p> li>
ul> p>
Question Superset pour tous les formats
<%%> Code> Modificateurs qui sont venus plus tard: Stackoverflow.com/questions / 7996695 / Rails-Erb-Syntaxe@Cirosantilli: Vous dominez-les - Beau travail! J'ai choisi Stackoverflow.com/questions/7996695/... pour celui-ci, aussi ...