3

我不明白如何在局部视图中正确使用实例变量,我希望这里有人能启发我。例如:

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对调用的局部视图不可用。我该如何补救?

谢谢

4

1 回答 1

8

当您进行重定向时,浏览器会发送一个全新的请求,因此前一个请求中的所有数据都无法访问。您可能不想在这里进行重定向;当您通过控制器查看单独的运行时,没有任何范围可以帮助您。

稍微想想你的设计——你想做什么?如果选择是粘性的,也许它应该在会话中进行。如果只是部分更改,也许您应该使用 Ajax 调用。也许解决方案就像渲染index模板而不是重定向到index动作一样简单。

于 2009-03-01T21:13:47.657 回答