Forum: Ruby on Rails redirect_to results in "syntax error" for <!DOCTYPE HTML...>

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
460ead051b49c0b2a8e45e46252d4bda?d=identicon&s=25 Tom Ha (tom)
on 2009-04-19 21:29
Hi there,

I have a strange error:

In a controller, I have a...

   redirect_to :action => 'show'

...at the end. But upon code execution, Firebug tells me:

  syntax error
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

(It says that for Line 0)

Does anyone have a clue what this means and where the problem lies?

Just in case:
- I have also tried to use the "loose" version in the HTML code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loo...
But it didn't change anything.
- redirect_to a different :action works.

Thank you for any help with this!
Tom
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-04-19 21:44
(Received via mailing list)
On Apr 19, 8:29 pm, Tom Ha <rails-mailing-l...@andreas-s.net> wrote:
> Hi there,
>
> I have a strange error:
>
> In a controller, I have a...
>
>    redirect_to :action => 'show'
>
> ...at the end. But upon code execution, Firebug tells me:
>
Sounds like you redirected to an html page but your stuff on the page
was expecting to get some javascript back (ie you were using
link_to_remote etc.. without an :update option)

Fred
460ead051b49c0b2a8e45e46252d4bda?d=identicon&s=25 Tom Ha (tom)
on 2009-04-20 21:07
Thanks for your (actually super-quick) reply, Fred!

To paraphrase it (correct me if I'm wrong):

Whenever an Ajax request is sent (i.e. using submit_to_remote) the
"rendering part" in the controller can NOT use "redirect_to :action =>
..." or "render :action => ...".

Rendering the response can in this case only be done using:

render :update do |page|
  page.replace_html 'whatever', :partial => 'whatever'
end

"redirect_to" and "render" can only be used after "regular" requests.
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-04-20 21:11
(Received via mailing list)
On 20 Apr 2009, at 20:07, Tom Ha wrote:

>
> render :update do |page|
>  page.replace_html 'whatever', :partial => 'whatever'
> end
>
> "redirect_to" and "render" can only be used after "regular" requests.

It depends on whether link_to_remote, submit_to_remote etc... have
been passed the :update option.

- if they have then they are updating an element on the page and you
need to generating a normal html fragment
- if they are not then they are expecting javascript, so using
render :update and so on is compulsory.

Fred
460ead051b49c0b2a8e45e46252d4bda?d=identicon&s=25 Tom Ha (tom)
on 2009-04-20 21:23
Ok, thanks!
This topic is locked and can not be replied to.