Ruby on Rails — область видимости переменных экземпляра с частичным представлением
-
03-07-2019 - |
Вопрос
Я не понимаю, как правильно использовать переменную экземпляра с частичными представлениями, я надеюсь, что кто -то здесь может просветить меня.Например:
class MainController < ApplicationController
def index
@item_list = Item.find_all_item
end
def detail_display
@current_selected = @item= Item.find(params[:id])
redirect_to :action => :index
end
end
detail_display
вызывается, когда пользователь щелкает элемент в списке.Переменная @current_selected
недоступен для частичного представления, вызванного при перенаправлении индекса.Как я могу это исправить?
Спасибо
Решение
Когда вы выполняете перенаправление, браузер отправляет совершенно новый запрос, поэтому все данные предыдущего запроса становятся недоступными.Вероятно, вы не захотите выполнять здесь перенаправление;Никакие возможности не помогут вам, когда вы просматриваете отдельные прогоны вашего контроллера.
Подумайте немного о своем дизайне: что вы пытаетесь сделать?Если выделение является чем-то липким, возможно, его следует перенести в сеанс.Если изменение происходит только частично, возможно, вам следует использовать вызов Ajax.Возможно, решение так же просто, как рендеринг index
шаблон вместо перенаправления на index
действие.