2012-11-02 31 views
0

我不知道這種行爲是否正常,但是當我做:Rails的支持JavaScript顯示文本

 
render 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} 
    else 
     render js: "window.location.pathname = '#{new_user_session_path}';" 
     flash[:error] = 'Please sign in to vote.' 
    end 
    end 

如何防止這種情況的發生,並直接呈現該模板?

回答

1

爲什麼不使用rails控制器路由將其重定向回new_user_session_path?

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