2010-09-02 2 views
4

Я пробую стандартный синтаксис redirect_to some_path and return, но почему-то Rails 3 не нравится.Strange DoubleRenderError in Rails 3

class MyController < ApplicationController 
    def some_action 
    redirect_to "http://www.google.com" 
    return 
    end 
end 

дает мне стандартное сообщение об ошибке:

Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like "redirect_to(...) and return". 

Он ссылается на точную линию моей redirect_to "http://www.google.com" в ошибке. Не могу понять, как это возможно!

Я прокомментировал все перед фильтрами, которые я могу найти, без разницы.

Это Rails 3.0.0

ответ

8

О человек - наконец понял это.

Где я разместил some_action выше, я на самом деле назвал метод status. По-видимому, это зарезервированное слово или что-то в рельсах, потому что оно вызывало его из другого места - следовательно, ошибка DoubleRender.

Ничего себе - это заняло у меня гораздо больше времени, чем нужно.

+0

Такая же проблема здесь. Черт и эти слова. Если бы только ошибка скажет, где проблема ... =) – zigomir

+0

Ничего себе, я бы хотел, чтобы это было задокументировано, это просто ударило меня плохо ... только появилось, неожиданно, на производстве, хотя у меня было действие с именем «статус», месяцами! – LisaD