This project is archived and is in readonly mode.

#924 ✓resolved
Erik Andrejko

render partial :object => nil with instance variable

Reported by Erik Andrejko | August 28th, 2008 @ 03:09 PM | in 2.x

The following does not work as expected.

Controller:


@profile = Profile.new

View:


render :partial => 'profile', :object => nil

Inside the partial 'profile', the local variable will be given the value of '@profile' and not nil as expected.

Comments and changes to this ticket

  • Michael Koziarski

    Michael Koziarski August 28th, 2008 @ 03:21 PM

    • Assigned user set to “josh”
  • josh

    josh August 28th, 2008 @ 04:41 PM

    • State changed from “new” to “resolved”

    I agree with you thats its a bit of a quirk, but its not easily fixed without alot of complex nil checking.

    The implicit assignment is rather old anyway. Instead, I am just going to deprecate it. Sorry that it doesn't immediately fix your issue.

    http://github.com/rails/rails/co...

  • Erik Andrejko

    Erik Andrejko August 28th, 2008 @ 07:51 PM

    Thanks for the fix. I was able to avoid this issue by restructuring my application.

    Did you look at the attached patch? It is not that difficult to allow explicit nil assignments. I'm not sure if the implicit assignment of the instance variable should be deprecated or not. Is there any sense of how often this is used?

  • josh

    josh August 29th, 2008 @ 06:28 AM

    I saw the patch. If we wanted to go that route we'd have to add nil overrides to :locals, and :as. I'd really hate to see a big chain of has_key? just because we can't rely on nil.

    Implicit assignment is really old school. Infact, I can't even find it documented anywhere. We now have plenty of options to assign objects to the partial local. So I'm not too worried about the people who used to use it.

  • bingbing

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

<h2 style="font-size: 14px">Tickets have moved to Github</h2>

The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>

Attachments

Pages