Ruby on Rails — область видимости переменных экземпляра с частичным представлением

StackOverflow https://stackoverflow.com/questions/600498

Вопрос

Я не понимаю, как правильно использовать переменную экземпляра с частичными представлениями, я надеюсь, что кто -то здесь может просветить меня.Например:

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 действие.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top