2015-11-14 37 views
0

所以,我有這個html.erb和這個控制器(如下所示)。我想要的是,如果simple_captcha.valid?增加報告,保存和關閉當前選項卡。如果可能的話,我想從控制器執行它! (也是,這是一個很好的做法嗎?)Rails 4關閉控制器的當前標籤

我在瀏覽頁面上看到了幾個使用javascript的例子,但我對JavaScript一無所知,如果可能的話,我想在控制器上處理它。但是,如果我真的需要學習JavaScript來實現我想要的功能,我應該選擇哪個方向?

#view (html.erb) 
<h4>To report, complete captcha</h4> 
<%= show_simple_captcha %> 
<%= button_to "report post", create_report_post_path(@forum_post.id) %> 
----------------------------------- 
#controller 
def new_report_post 
    @forum_post = ForumPost.find(params[:id]) 
end 

def create_report_post 
    @forum_post = ForumPost.find(params[:id]) 
    if simple_captcha_valid? 
     @forum_post.reports += 1 
     @forum_post.save 
     redirect_to ??? 
     flash[:success] = "Mandou ver." 
    else 
     redirect_to report_post_path 
     flash[:warning] = "Captcha inválido." 
    end 
end 
+0

是的,'Redirect_to ???'是解決方案應該實現的地方 –

回答

0

我不這麼認爲,你可以關閉一個選項卡,除非該選項卡是由javascript明確打開的。 你可以參考這個問題:link

但是,如果您打開使用javascript的視圖。您可以使用js.erb視圖發送window.close()。

相反redirect_to的的,它會像

respond_to do |format| 
     format.js { render "js_erb_view" } 
    end 

裏面你js.erb視圖文件,您可以發送 window.close()的 這隻會工作,如果你發送一個Ajax請求。其中一個可能的解決方案,使這項工作:)

+0

很酷,這就是我想要的:D呃,我會在今天晚些時候嘗試,如果它能夠工作,我會接受答案;) 但是,你能告訴我如何打開它使用JavaScript?我真的完全不知道它的用法:P –

+0

在HTML New Report

+0

它工作正常!謝謝! –