Rails呈现javascript显示文本

我不确定这种行为是否正常,但是当我这样做时:

渲染js:“window.location.pathname ='#{new_user_session_path}';”

在我的控制器中,它会短暂显示文本window.location.pathname = '/user/sign_in'; 在执行该行并成功重定向之前。

这是完整的控制器动作:

 def vote_down
     if user_signed_in?
       current_user.vote_exclusively_against(@deal = Deal.find(params [:id]))

       render:partial =>'deals / partials / interaction', 
         :locals => {:deal => @ deal,:votes_for => @ deal.votes_for,:votes_against => @ deal.votes_against}
    其他
      渲染js:“window.location.pathname ='#{new_user_session_path}';”
       flash [:error] ='请登录进行投票。'
    结束
  结束

如何防止这种情况发生并直接呈现该模板?

为什么不直接使用rails控制器路由重定向回new_user_session_path?

 respond_to do |format| format.html { redirect_to new_user_session_path, error: 'Please sign in to vote.' } end