【发布时间】:2015-11-20 20:58:54
【问题描述】:
感谢您阅读本文。 我的 Rails 应用程序中有一个索引视图。它有一个区域,我在其中显示记录列表。我使用一个名为@list 的实例变量来保存记录数组。我在表单上有几个按钮,可以以网格或列表格式远程呈现列表。一切都很好 - 我有一个 grid_partial 和一个 list_partial,我使用 JS 来呈现用户点击的任何视图。
我最近添加了一项功能,允许用户选择列表的订购标准(按价格排序:升序,交货日期:降序等)。当他们点击一个排序方案时,我在控制器中 ajax 一个方法来更新@list 的值。 update 方法然后调用呈现部分的 js.erb 文件。它正确地做到了这一点,因为@list 记录现在按用户请求的顺序排列。当我单击其中一个按钮在列表和网格视图之间切换时,会出现我的问题。当我这样做时,列表和网格部分使用原始的、未更新的@list 版本,而不是我最近从与服务器的最后一次 AJAX 通信中收到的值。我的两个部分都引用了@list 实例变量来获取数组。
我的意图是能够更新/覆盖@list 的值,以便后续渲染引用@list 的部分将使用新的更新值。这可能吗?
我尝试将@list 变量替换为传递到每个部分的局部变量,但这并不能解决问题。提前感谢您的考虑。
【问题讨论】:
-
您能提供分配@list 的控制器代码吗?
标签: ruby-on-rails renderpartial