Estoy siguiendo el tutorial de Ruby on Rails y he encontrado un problema al intentar pasar variables a parciales.
Mi _userparcial es la siguiente
<li>
<%= gravatar_for user, size: 52 %>
<%= link_to user.name, user %>
</li>
Me gustaría pasar un número para el valor del tamaño. Estoy intentando lo siguiente sin suerte.
<%= render @users, :locals => {:size => 30} %>
ruby-on-rails
dopplesoldner
fuente
fuente

localshash para usar la versión corta de esta manera:<%= render @users, size: 30 %>Desde la API de Rails en PartialRender :
Ejemplos:
Por lo tanto, puede usar pasar una variable local
sizepara representar de la siguiente manera:y luego usarlo en el
_user.html.erbparcial:Tenga en cuenta que
size: sizees equivalente a:size => size.fuente
Ya sea
O
Para usar
locals, necesitaspartial. Sin elpartialargumento, puede simplemente enumerar variables directamente (no dentrolocals)fuente
No usar
localsen Rails 4.2+En Rails 4.2 tuve que quitar la
localsparte y simplemente usarlasize: 30en su lugar. De lo contrario, no pasaría la variable local correctamente.Por ejemplo, use esto:
fuente
Si está utilizando JavaScript para renderizar, use
escape_JavaScript("<%=render partial: partial_name, locals=>{@newval=>@oldval}%>");fuente
Sintácticamente un poco diferente, pero se ve más limpio en mi opinión:
fuente
Puede crear variables locales una vez que llame a la función de representación en un parcial, por lo tanto, si desea personalizar un parcial, puede, por ejemplo, representar el parcial
_form.html.erbde la siguiente manera:De esta manera, puede acceder de forma parcial a la etiqueta para el botón y la URL, que son diferentes si intenta crear o actualizar un registro. finalmente, para acceder a estas variables locales, debe ingresar su código
local_assigns[:button_label](local_assigns[:name_of_your_variable])fuente