Alguém pode descrever o uso dos seguintes caracteres usados no arquivo ERB:
<% %>
<%= %>
<% -%>
<%# %>
qual é o uso de cada um?
ruby-on-rails
ruby
templates
erb
simo
fonte
fonte
-%>
e stackoverflow.com/questions/3952403/… para<%=
, stackoverflow.com/questions/3901619/… para<%#
.<%= %>
e<%= -%>
são diferentes: somente o último remove os espaços em branco à direita.Respostas:
Executa o código ruby entre colchetes.
Imprime algo no arquivo erb.
Evita quebra de linha após a expressão.
Comentários fora do código entre colchetes; não enviado ao cliente (em oposição aos comentários em HTML).
Visite Ruby Doc para obter mais informações sobre o ERB.
fonte
<%#
é apenas normal<%
com um comentário de Ruby#
logo após ... Sim, é divertido pensar que é algo especial, mas não é apenas um idioma do ERB e não uma construção sintática especial?<%...%>
,<%#...%>
comenta tudo , o que não faria se fosse apenas um comentário normal (ou seja, apenas comentaria a linha está ligado).<% %>
e<%- and -%>
são para qualquer código Ruby, mas não gera os resultados (por exemplo, instruções if). os dois são iguais.<%= %>
é para gerar os resultados do código Ruby<%# %>
é um comentário do ERBAqui está um bom guia: http://api.rubyonrails.org/classes/ActionView/Base.html
fonte
<%-
faça alguma coisa para colocar espaços em branco, e não a vejo documentada em lugar algum. Você tem certeza sobre isso? Talvez seja um sabor diferente do ERB. Não há opção mostrada para ele nos documentos stdlib.O Rails não usa o ERB do stdlib por padrão, ele usa erubis . Fontes: o comentário deste desenvolvedor , o gemspec do ActionView , aceitou a solicitação de mesclagem que eu fiz enquanto escrevia isso .
Não são diferenças de comportamento entre eles, em especial sobre a forma como os operadores hífen
%-
e-%
trabalho.A documentação é escassa. Onde o formato ERB do Ruby é "oficialmente" definido? então o que se segue são conclusões empíricas.
Todos os testes supõem:
Quando você pode usar
-
-
para atrim_mode
opção deERB.new
usá-lo.Exemplos:
O que
-%
faz:ERB: remova o próximo caractere se for uma nova linha.
erubis:
em
<% %>
(sem=
),-
é inútil porque<% %>
e<% -%>
é o mesmo.<% %>
remove a linha atual se ela contiver apenas espaços em branco e não fizer nada de outra maneira.em
<%= -%>
(com=
):Exemplos:
O que
%-
faz:ERB: remova os espaços em branco antes da tag e após as novas linhas anteriores, mas somente se houver apenas espaços em branco antes.
erubis: inútil porque
<%- %>
é o mesmo que<% %>
(sem=
), e isso não pode ser usado com o=
qual é o único caso em que-%
pode ser útil. Portanto, nunca use isso.Exemplos:
O que
%-
e-%
fazer juntosA combinação exata de ambos os efeitos separadamente.
fonte
<% %>
: Executa o código ruby<%= %>
: Imprime no arquivo Erb. Ou navegador<% -%>
: Evita quebra de linha após a expressão.<%# %>
: Comentário do ERBfonte
Eu adicionei o
<%%
delimitador de tag literal como resposta a isso devido à sua obscuridade. Isso instruirá o erb a não interpretar a<%
parte da tag necessária para aplicativos js, como exibir dicas de ferramentas chart.js etc.Atualização (link quebrado fixo)
Tudo sobre o ERB agora pode ser encontrado aqui: https://puppet.com/docs/puppet/5.3/lang_template_erb.html#tags
fonte
Estes são usados em rubi sobre trilhos : -
<%%>: -
As tags <%%> são usadas para executar o código Ruby que não retorna nada, como condições, loops ou blocos. Por exemplo :-
<% =%>: -
use para exibir o conteúdo.
<% -%>: -
O Rails estende o ERB, para que você possa suprimir a nova linha simplesmente adicionando um hífen à direita às tags nos modelos do Rails
<% #%>: -
comente o código
fonte
<% %>
executa o código lá, mas não imprime o resultado, por exemplo:Podemos usá-lo para se mais em um arquivo erb.
Vai imprimir
temp is 1
<%= %>
executa o código e também imprime a saída, por exemplo:Podemos imprimir o valor de uma variável rails.
Vai imprimir
1
<% -%>
Não faz diferença, pois não imprime nada,-%>
apenas faz sentido com<%= -%>
, isso evitará uma nova linha.<%# %>
comentará o código escrito dentro disso.fonte