如果我解释一下我正在尝试做什么,这可能是最简单的。我在Rails app控制器中有三个动作,每个动作都呈现不同的页面。页面渲染使用单个部分完成,该部分使用在控制器操作代码中设置的变量。例如,每个页面上都有一个列表,但在一个页面上列表是可排序的。到目前为止,我一直在通过在我的操作的代码中将@sortable
标志设置为true或false来处理此问题。
最初运行操作时,此方法正常。问题是我有AJAX的东西(例如在列表中添加一个新元素),当发生这种情况时,我需要再次知道@sortable
变量的值。它似乎已经消失了,尽管我在技术上仍然在同一页面上。我想要的是一个链接到你所在页面的变量商店。
您对此有何建议? (将它存储在Rails session
哈希中似乎有点矫枉过正 - 通过一些尚未实现的操作将错误的值留在那里的可能性太大了。)
本
答案 0 :(得分:1)
为什么你不想使用会话?至于我before_filter
适用于此类任务
before_filter :init_actions
def init_actions
session[:action] = action_name
session[:controller] = controller_name
end
答案 1 :(得分:1)
在rails中,我只设法为初始设置设置页面作用域变量。
我认为唯一的解决方案是从ajax请求的页面传递可排序标志。您可以使用javascript变量,隐藏字段,列表中的自定义属性或任何您希望的方式存储它,然后在ajax中将其添加到请求中,以便您可以在服务器端持续处理它。