使用Rails v2.1,假设您有一个可以从多个位置访问的控制器的操作.例如,在Rails应用程序中,您有一个链接可以从两个不同的视图编辑用户,一个在用户索引视图上,另一个在另一个视图中(比如每页的导航栏).
我想知道根据用户点击的链接将用户重定向回正确位置的最佳方法是什么.例如:
例1:
列出所有用户
单击列表中用户的"编辑"
用户单击表单上的"保存",控制器重定向回1.
例2:
用户可以在应用程序内的任何页面上,导航栏显示用于编辑当前用户的链接
用户单击要编辑的链接
用户单击表单上的"保存",当用户单击导航栏中的"编辑"链接时,控制器会重定向回到他们所在的任何页面.
我以前见过它:
使用出现链接的原始控制器/操作在原始编辑链接上放置参数.为了使它更干,你可以在帮助器中使用@ controller.controller_name和@ controller.action_name.
控制器将参数保存到会话变量.
一旦控制器保存了记录,它就会重定向到会话变量.
我不太喜欢这个解决方案,需要将参数添加到视图中的每个适用链接.我想知道是否有办法将这一切都构建到控制器中.
我想的一个更好的方法是:
在"编辑"操作上放置一个before_filter,以便将引用者(这是否足够可靠?)保存到会话中.
当命中"update"时,控制器将重定向到会话变量,然后删除会话变量.
有关最佳方法的任何想法吗?