2011-02-14 12 views
10

私のindex.html.erbファイルで、私はオブジェクトにタイトル( "リスト")を表示しようとしています「表示」、「編集」、および「破壊」リンクおよび/またはボタン。 :method =>:delete and:confirm => "あなたは本当ですか?"、link_toまたはbutton_toのどちらもjavascriptの確認ボックスを表示しません。ここに私のindex.html.erbは次のとおりです。リストの一番上にRails 3 - Javascript:link_toとbutton_toで動作していないことを確認してください:method =>:delete

<h2><a href="#" onclick="alert('Hello world!'); return false;">Click Here for a Javascript test</a></h2> 
<table> 
    <tr> 
    <th>List Title</th> 
    <th></th> 
    <th></th> 
    <th></th> 
    </tr>  
<% @listings.each do |listing| %> 
    <tr> 
    <td><%= listing.title %></td> 
    <td><%= button_to 'Show', listing %></td> 
    <td><%= button_to 'Edit', edit_listing_path(listing) %></td> 
    <td><%= button_to('Destroy', listing, 
         :confirm => 'Are you sure?', :method => :delete)%> </td> 
    <td><%= link_to "Destroy", listing, :confirm => "Are you sure?", :method => :delete %> </td> 
    </tr> 
<% end %> 
</table> 

「Hello World」のJS確認リンクは完璧に動作しますので、私は控えめなJavascriptを私のアプリのために正常に動作していることを確信しています。 (私はjavascript_include_tag:defaultsとcsrf_meta_tagがアプリケーションテンプレートに必要であることを確認しました。)Railsのドキュメントは、私が使用している引数がサポートされていることを確認します(url、:confirm、:method)。しかし、button_toとlink_toのどちらも、:confirmで示されるJSアラートを生成しません。まったく同じ引数を持つもう1つの違和感、button_toはレコードを削除しますが、link_toはレコードを削除しません。

この問題を解決するために何を調査するかに関するご意見をいただければ幸いです。

ありがとうございます!

+0

チェック 'アプリケーション/設定を。あなたがあなたがデフォルトと思うJSファイルをロードしているかどうかを確認するためにrbを実行します。 (これは最近私がプロトタイプの代わりにjQueryを使ってレールアプリを作ろうとしたときにちょっとだった。デフォルトは空だった。) – Telemachus

答えて

2

誤ってPrototypeとjQueryの両方を含む前に、私はこの正確な問題に遭遇しました。両方のフレームワークを何らかの形でロードしていないことを確認するために、ロードされているリソースを確認してください。私の知る限り、この問題は、その方法は、(HTTPメソッド)GET以外の場合に問題を引き起こすのlink_toオプションに引き起こされ

+1

ポインタをありがとう。私はルビーのヌードですが、少しのグーグルの後に、私は実際にjavascript設定の問題を発見したと言えるでしょう。 1)私が使ったレールアプリケーションビルダーは、jquery.jsファイルを "public/javascript"フォルダに入れましたが、フォルダ呼び出しjquery内に置いてありました(私はそれをレベル上に移動しなければなりませんでした)。2)config/application.rbファイル2つのjavascript設定行があります。私は1つを削除し、上記のjquery.jsファイルを指していることを確認しました。変更を加えたものはすべて働いています。 –

1

ので、私は、私はちょうど同じ問題に遭遇した微

1

を作品button_toオプションを使用し、日まで利用できる最新のRailsは、とのように、link_to引数のhtml_options一部に:confirmオプションを移動することによってそれを解決:

<%= link_to (t '.scenarios.open'), { :controller => 'scenarios', :action => 'show', :name => scenario.name }, :confirm => 'really?' %> 

は確かに、 jquery-rails宝石を必要としますが、その一つは、すでにここに、適切にリンクされました。

1

jQueryの(jquery_ujs)のためのRailsの控えめなスクリプトアダプタがあなたのサイトにロードされているかどうかをチェックし、その後、あなたは、サードパーティのJavaScriptのを心配する必要はありません。

// app/assets/javascript/application.js  
//= require jquery_ujs 
+0

これは正しい答えです:) – Ghoti

関連する問題