stupid Rails rendering

Kad

You have probably already spotted it, but just in case:

respond_to do |format|
  format.js {
     if @located
       page.redirect_to posts_url
     else
       render :update do |page|
         page.replace_html 'error_message', "Error..."
         page << "$('popup_error').popup.show();"
       end
     end
   }
end

In the line - page.redirect, page is out of scope.

Will work if you do:

render :update do |page|
       if @located
          page.redirect_to posts_url
       else
          page.replace_html 'error_message', "Error..."
          page << "$('popup_error').popup.show();"
       end
end

The reason it needs to be this way is that redirect does not cause the
method to immediately exit, so the other render
statements were getting executed, causing the error.

tonypm