Рендеринг другого представления без потери значений переменных - PullRequest
0 голосов
/ 06 января 2012

У меня есть помощники в приложении Rails, которые возвращают некоторые данные, основанные на переменной, установленной в контроллере: например:

def title
    base_title = "Unikernel"
    if @title.nil? then
        base_title
    else
        "#{base_title} | #{@title}"
    end
end

И в контроллере (обычно в каждом действии) я устанавливаю значение, например:

@title = "Solutions"

теперь, когда я обрабатываю какой-либо результат, я получаю от отправки формы, если что-то не так, я говорю:

render action: "edit"

или

render "new"

Когда я нахожусьотображаемая страница, переменные не инициализируются и т. д.

Что мне делать с этой проблемой?

1 Ответ

2 голосов
/ 06 января 2012

Обычно, когда что-то не так во время обновления, вы попадаете в действие обновления.Если во время создания что-то идет не так, ваше сообщение об ошибке отображается действием create.Вы также установили переменную в своем действии создания и обновления?

def new
  @title = "New page"
end

def create
  @title = "Errors!"
end

Когда вы отправляете свою форму и получаете ошибки, вы получите @title от вашего действия create, а если нетустановите его в create, @title будет nil.

Когда вы вызываете render, вы не перенаправляете на другое действие, следовательно, вы все еще находитесь в update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...