Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

Layout MIME type should match the response's

#908

Given layout.html.erb and layout.js.erb, GET /index.js should cause layout.js.erb to be picked as the layout.

This fails to happen if index.js.erb tries to render a partial of another type inside itself (for example: _list.html.erb), in which case layout.html.erb is mistakenly picked.

I attached a failing test covering this bug.

Reported by Roman Le Négrate · August 26th, 2008 @ 11:01 PM

State: wontfix
Milestone: 2.x
Assigned to: josh josh
Importance: none

Activity

  1. Roman Le Négrate
  2. Roman Le Négrate
    Roman Le Négrate

    Re-uploaded the failing test as there was a typo in the failing assertion.

    August 26th, 2008 @ 11:26 PM

  3. Roman Le Négrate
    Roman Le Négrate

    Uploaded a second patch: the same test that was failing, along with an attempt at solving the problem.

    The mime_responds_test.rb test suite now passes when run alone.

    Unfortunately, when running the full ActionPack test suite, another assertion fails inside the new test, for no apparent reason.

    The only change I made is to remove the line @template_format = :html in ActionView::Base#pick_template. I don't understand what goes wrong when running the full suite; hopefully somebody can help me on this.

    August 27th, 2008 @ 02:11 AM

  4. Roman Le Négrate
  5. Roman Le Négrate
    Roman Le Négrate

    Oops, fixed the filename of the last patch.

    August 27th, 2008 @ 02:15 AM

  6. josh
    josh
    • State changed from new to open
    • Tag changed from 2.1, actionpack, bug, controller, edge, patch, tested, tests to actionpack

    +1 if you can get it working.

    NOTE: test_layout_mime_should_match_responses should be broken up into separate cases

    August 29th, 2008 @ 05:01 PM

  7. Roman Le Négrate
    Roman Le Négrate

    Joshua:

    The 2nd patch fixes the bug as the (new) test passes. Plus, I use Rails with this patch applied in one of my projects and I noticed that that bug is now actually gone.

    What is weird though, is that when the test suite is run in its entirety, an assertion within the same test (but different from the one which failed originally) then fails. Like some other test messed with the code and did not restore it to its original state afterward.

    "test_layout_mime_should_match_responses should be broken up into separate cases": agreed.

    August 30th, 2008 @ 10:38 PM

  8. josh
    josh
    • State changed from open to wontfix

    tests still fail, let me know if you make more progress

    December 3rd, 2008 @ 03:33 PM

  9. josh
    josh
    • Assigned user set to josh

    December 3rd, 2008 @ 03:33 PM

  10. Roman Le Négrate
    Roman Le Négrate

    Actually, not long after creating this ticket, I rewrote ActionView::Base#pick_template so that it behaves more consistently. And it's been working like a charm since then.

    Currently, the rewrite is packaged in a plug-in and I haven't taken the time to make a patch for Rails out of it. I just put it up on GitHub for you to take a look and perhaps have a stab at it:

    http://github.com/Roman2K/action...

    December 3rd, 2008 @ 03:47 PM