问题:
我希望在create
操作后重定向到不同路径,如果previous_page为../reader/new
,则为../reader/blog/:id
,而如果previous_page为../editor/new
则为{{1} }}
阐释:
我想修改控制器操作,以便它可以重定向到不同的路径,具体取决于它来自哪个页面。例如,我有../editor/blog/:id
,reader
和editor
模型。 blog
和reader
都可以创建editor
。
以下是原始blog
:
blogs_controller
答案 0 :(得分:5)
您有几个选择:
redirect_to :back
request.referer
决定重定向的位置create
操作,例如来自"读者"时传递params[:redirect_to] = "reader"
页面并根据此参数决定重定向的位置。您甚至可以将整个URI重定向到param中,然后重定向到它(但这种方法不安全,因为用户可能会破坏params)。通常,我选择第三个选项(参数),因为您可以最好地控制重定向过程(前两个选项依赖于HTTP引用,也可能被任何访问者破坏,因此可能不安全)