Trilhos locals parciais não persistem quando enviado para outro parcial como seu próprio local,

StackOverflow https://stackoverflow.com/questions/1240321

Pergunta

Eu tornar uma parcial assim:

<%= render :partial => 'widgets/some_partial, :locals => {:foo => 'bar'} %>

Assim, dentro de _some_partial.html.erb presto mais dois parciais assim:

<% #foo.nil? #=> false %>
<%= render :partial => 'widgets/another_partial', :locals => {:foo => foo} %>
`<%= render :partial => 'widgets/another_partial_again', :locals => {:foo => foo} %>`

A variável local foo torna bem em some_partial.html.erb e até mesmo em another_partial_again.html.erb. No entanto, a variável foo é inacessível em another_partial.html.erb mesmo que eu passei-lo explicitamente na chamada render.

O que está acontecendo aqui?

Obrigado pela ajuda.

Foi útil?

Solução 2

resolvido. Acontece que eu também estava prestando o mesmo parcial do controlador sem enviar as variáveis ??locais apropriados. Obrigado de qualquer forma !!!

Outras dicas

Eu tive o erro undefined local variable or method chegar para mim também quando eu estava prestando um parcial com :locals definido.

No entanto, eu tinha um problema diferente causando meu problema, então eu pensei que eu iria partilhar a minha solução no caso de ajuda ninguém. (Esta página foi o primeiro resultado quando eu pesquisei este erro depois de tudo)

Basicamente apenas certifique-se de usar :partial => 'path/to/partial' em sua chamada para render.

i.

<%= render :partial => 'widgets/some_partial', :locals => {:foo => 'bar'} %>

Não que eu estava fazendo:

<%= render 'widgets/some_partial', :locals => {:foo => 'bar'} %>

Fácil para um novato rails / ruby ??como eu perder.

batido para este muito velha pergunta porque eu enfrentado o mesmo problema. Descobriu-se que com Rails 4+ se você não estiver usando coleções ou o layout da maneira correta é:

# Instead of <%= render partial: "account", locals: { account: @buyer } %>
<%= render "account", account: @buyer %>

Como documentado aqui .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top