Redirect_to results in "syntax error" for <!DOCTYPE HTML...>


#1

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

(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:

But it didn’t change anything.

  • redirect_to a different :action works.

Thank you for any help with this!
Tom


#2

On Apr 19, 8:29 pm, Tom Ha removed_email_address@domain.invalid 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


#3

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.


#4

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


#5

Ok, thanks!