tutorial software rails ejemplos descargar curso caracteristicas ruby-on-rails

ruby on rails - software - Rails 4-pasar variable a parcial



ruby on rails tutorial (5)

Desde la api de Rails en PartialRender :

Renderizar el caso predeterminado

Si no va a utilizar ninguna de las opciones, como colecciones o diseños, también puede usar los valores predeterminados de las manos cortas de renderizar para hacer parciales.

Ejemplos:

# Instead of <%= render partial: "account" %> <%= render "account" %> # Instead of <%= render partial: "account", locals: { account: @buyer } %> <%= render "account", account: @buyer %> # @account.to_partial_path returns ''accounts/account'', so it can be used to replace: # <%= render partial: "accounts/account", locals: { account: @account} %> <%= render @account %> # @posts is an array of Post instances, so every post record returns ''posts/post'' on `to_partial_path`, # that''s why we can replace: # <%= render partial: "posts/post", collection: @posts %> <%= render @posts %>

Por lo tanto, puede usar pasar un size variable local para representar de la siguiente manera:

<%= render @users, size: 50 %>

y luego _user.html.erb en el _user.html.erb parcial:

<li> <%= gravatar_for user, size: size %> <%= link_to user.name, user %> </li>

Tenga en cuenta que size: size es equivalente a :size => size .

Estoy siguiendo el tutorial de Ruby on Rails y me he encontrado con un problema al intentar pasar variables a los parciales.

Mi _user parcial es el 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. Lo intento de la siguiente manera sin suerte.

<%= render @users, :locals => {:size => 30} %>

¡Gracias por adelantado!


Necesitas la sintaxis parcial de renderizado completo si pasas locales

<%= render @users, :locals => {:size => 30} %>

Se convierte

<%= render :partial => ''users'', :collection => @users, :locals => {:size => 30} %>

O para usar la nueva sintaxis hash

<%= render partial: ''users'', collection: @users, locals: {size: 30} %>

Lo cual creo que es mucho más legible


Si está utilizando JavaScript para procesar, utilice escape_JavaScript("<%=render partial: partial_name, locals=>{@newval=>@oldval}%>");


Sintácticamente un poco diferente, pero se ve más limpio en mi opinión:

render ''my_partial'', locals: { title: "My awesome title" } # not a big fan of the arrow key syntax render ''my_partial'', :locals => { :title => "My awesome title" }


Ya sea

render partial: ''user'', locals: {size: 30}

O

render ''user'', size: 30

Para usar locals , necesitas partial . Sin el argumento partial , puede enumerar las variables directamente (no dentro de los locals )