如何在控制器(Rails)中重定向后执行JS?

时间:2014-08-26 14:12:27

标签: javascript ruby-on-rails ruby

创建

if @image.save
    format.html { redirect_to vote_path(@image) }
    format.js { render :js => "my_function();" }
end

因此我想在重定向发生后启动一个功能,但这不起作用。有没有其他方法我可以尝试,你能建议我吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

重定向和渲染是分开的。如果您希望它在重定向后运行JS,您可以在vote_path正在使用的视图中放置一些。如果您只希望它在重定向后运行而不是在页面加载时运行,则可以在重定向之前设置闪存,然后在视图中检查闪存。

答案 1 :(得分:0)

另一种方法是创建create.js.erb的视图,然后运行JS:

你的控制器:

if @image.save
  format.html { redirect_to vote_path(@image) }
  format.js { }
end

create.js.erb

$("#share_window").show();