2011-07-06 36 views
2

我有我的rails問題3應用
:確認和:方法在軌工作不button_to

在我看來,我有

<%= button_to("Accept Post", {}, {:confirm => "Are you sure?", :method => :accept_question, :remote => true}) %> 

生成的HTML是

<form method="post" action="https://stackoverflow.com/questions/show/1" data-remote="true" class="button_to"> 
    <div> 
     <input data-confirm="Are you sure?" type="submit" value="Accept Post" /> 
     <input name="authenticity_token" type="hidden" value="Rv1CbqkE+61Fn4wb836eOENjyGkNpzzRrwMTywLZPf0=" /> 
    </div> 
</form> 

我的g EM文件加載此

gem 'jquery-rails' 

下面的.js文件出現在生成的HTML

<script src="/javascripts/jquery.js?1309961714" type="text/javascript"></script> 
<script src="/javascripts/jquery-ui.js?1309961714" type="text/javascript"></script> 
<script src="/javascripts/jquery-ui.min.js?1305044364" type="text/javascript"></script> 
<script src="/javascripts/jquery.min.js?1309961714" type="text/javascript"></script> 
<script src="/javascripts/jquery.tools.min.js?1309338309" type="text/javascript"> </scipt> 
<script src="/javascripts/rails.js?1309961714" type="text/javascript"></script> 
<script src="/javascripts/application.js?1309424326" type="text/javascript"></script> 

我看到其他職位有關這個主題的,但沒有任何工程,我得到沒有錯誤,只是重定向到同一頁面,而沒有被提示。我還有其他一些使用jquery的代碼,工作正常。 我的問題是確認和方法在繼續之前不會提示。什麼是一個很好的方式來實現jquery到應用程序,我試圖包括jrails,但我所有的其他代碼打破感謝您的幫助

回答

10

我以前見過這個問題,我剛剛發現一個解決方法,使用純粹的JavaScript。如果你很着急,這可能只是現在。

你可以試試這個,你會得到同樣的效果:

<%= button_to("Accept Post", {}, {:onclick => "return confirm('Are you sure?')", :method => :accept_question, :remote => true}) %> 
+0

謝謝,那工作。 – Hishalv

+0

謝謝,它工作! – Surya

+0

我該如何添加class和url_path? – Muflix

4

我只是有這個問題,並意識到我沒有在我的公開目錄jquery_ujs.js文件(軌道3.0.x的)。

:confirm => "Message..."功能需要jQuery的不顯眼的腳本適配器,如果您決定爲jQuery廢棄Prototype。通過將gem "jquery-rails"添加到您的Gemfile,運行bundle install,然後rails generate jquery:install(如果要使用jquery_ui,請添加--ui)來安裝此適配器。 然後將javascript_include_tag :defaults添加到您的應用程序佈局,你很好。

generate命令會自動爲您提取jquery和jquery_ujs文件(如果需要的話,還會提供jquery_ui文件)。我的錯誤是我手動添加了jquery和jquery_ui文件,但沒有jquery_ujs文件。所以所有的jquery功能都在工作,但:confirm => "Message..."不是。一旦我安裝它,一切都完美無瑕。

+0

欲瞭解更多信息,請參閱[github頁面](https://github.com/rails/jquery-ujs) – metasoarous

+0

+1謝謝,現在使用rails 3.1.x,所以使用資產管道和東西正在工作,因爲他們應該 – Hishalv

+0

+ 1 Rails 3.2和我有一個高度定製的application.js。只需要添加// = require jquery_ujs並且窗口開始工作。 –