Estoy siguiendo el tutorial de Ruby on Rails y he encontrado un problema al intentar pasar variables a parciales.
Mi _user
parcial 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
locals
hash 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
size
para representar de la siguiente manera:y luego usarlo en el
_user.html.erb
parcial:Tenga en cuenta que
size: size
es equivalente a:size => size
.fuente
Ya sea
O
Para usar
locals
, necesitaspartial
. Sin elpartial
argumento, puede simplemente enumerar variables directamente (no dentrolocals
)fuente
No usar
locals
en Rails 4.2+En Rails 4.2 tuve que quitar la
locals
parte y simplemente usarlasize: 30
en 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.erb
de 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