Tutorial de Rails: siga el formulario que aparece como HTML escapado
-
27-10-2019 - |
Pregunta
En líneas similares como mi última pregunta: Problemas con HTML escapado en el archivo .js.erb
Estoy tratando de renderizar el formulario siguiente en el tutorial de Rails, pero me escapan HTML nuevamente. ¿Hay trucos similares?
$ ("#< %=" SEGO_FORM# /@tag.id} " %>"). html ("< %= escote_javascript (render ('etiquetas/seguir',: tag => @tag)) %>") ;
yo obtengo
<form accept-charset=UTF-8 action=/tag_user_relationships/76 class=edit_tag_user_relationship data-remote=true id=edit_tag_user_relationship_76 method=post><div style=margin:0;padding:0;display:inline><input name=utf8 type=hidden value=✓ /><input name=_method type=hidden value=delete /><input name=authenticity_token type=hidden value=goedvibRxKtDRiAufp1ThWJP0rRBU2cMH2xp7qodKws= />div> <div class=actions><input id=tag_user_relationship_submit name=commit type=submit value=Unfollow />div>form>
Cuando solo quiero obtener un botón de envío diferente.
Código para la vista:
<%= form_for current_user.tagUserRelationships.build(:tag_id => tag.id),
:remote => true do |f| %>
<div><%= f.hidden_field :tag_id %></div>
<div class="actions"><%= f.submit "Follow" %></div>
<% end %>
He seguido investigando. Si agrego esto en su lugar:
$ ("#< %=" SEGO_FORM# /@tag.id} " %>"). Html ("< %= Escape_javaScript (render ('etiquetas/seguir',: tag => @tag)). html_safe %> ");
Tengo el formulario apropiado para aparecer, pero:
div> botón Div> Forma>
En lugar de solo
botón
Solución
Prueba lo siguiente:
$("#<%= "follow_form#{@tag.id}" %>").html("<%= escape_javascript("#{render 'tags/follow'}").html_safe %>");
Con la diferencia clave, es que su llamada de renderizado está dentro del "#{}". Sin él, el parcial tiene todas las citas individuales eliminadas.