我有
def destroy
Event.find(params[:id]).destroy
flash[:info] = "Event deleted"
redirect_to :back
end
而且我可以从 2 个不同的视图中删除一个项目。在一个视图中,它是一个项目列表,因此我可以使用:back
和重新加载同一页面。但是另一个删除是在要删除的项目的视图上,所以一旦它消失了,我想去redirect_to
不同的地方。
我的问题是如何redirect_to
根据destroy
方法的来源告诉 Rails 不同的路径?
就像测试一样,我尝试使用基于 html 中的 body 类的 if 语句,但实例变量没有被带入 destroy 方法(我假设),因为它不起作用。例如
def destroy
if @body_class == 'one page'
Event.find(params[:id]).destroy
flash[:info] = "Event deleted"
redirect_to :back
elsif @body_class == 'a different page'
Event.find(params[:id]).destroy
flash[:info] = "Event deleted"
redirect_to root_path
end
end