3

基本的なlink_to構文が現在のrails3マスターで完全に壊れているのか、それともここで間違った構文を行っているのか疑問に思っています.

= link_to "name", nil, :onlick => "alert('Hello world!');"

実際にはクリック時にアラートを生成する必要があります。とても簡単です。私のrails3プロジェクトでは動作しません! (エラー出力もありません!)アイデアはありますか?

一般的なlink_to構文では、link_to_remoteを確認、リモート、およびhtmlクラスと組み合わせることができる例が見つかりませんでした(以下の私の試みを参照してください)

= link_to "delete", {:action => "destroy", :remote => true, :method => :delete, :confirm => "#{a.title} wirklich Löschen?" }, :class => "trash"

rails3 api でさえ、ここでは役に立ちません: http://rails3api.s3.amazonaws.com/index.html

ヘルプ!

4

6 に答える 6

13

ここでの問題は、クリックされたときではなく、なめられたときにアラートを表示するようにリンクを設定したことだと思います。;)

についてlink_to_remoteは、目立たないjavascriptへの切り替えで変わりました。ここでそれについて読むことができます: http://blog.solnic.eu/2009/09/08/unobtrusive-javascript-helpers-in-rails-3.html

于 2010-03-18T19:01:29.123 に答える
8

目立たない新しいjavascriptの変更が問題を引き起こしたようです。同様の問題が発生した場合の詳細については、次の投稿を参照してください http://blog.loopedstrange.com/modest-rubyist-archive/rails-3-ujs-and-csrf-meta-tags

 <%= csrf_meta_tag %>

私のために修正されたもの。

于 2010-03-19T19:08:07.407 に答える
3

nil は機能しません:

= link_to "name", nil, :onclick => "alert('Hello world!');"
=> <a href="/currentpath", onclick="alert('Hello world!');">name</a>

以下を使用する必要があります。

= link_to "name", "#", :onclick => "alert('Hello world!');"
=> <a href="#", onclick="alert('Hello world!');">name</a>
于 2010-07-22T16:37:58.440 に答える
1

ここでの他の回答がどれもうまくいかない場合は、これが役立つかもしれません。

したがって、csrf_meta_tag 宣言は私には十分ではありませんでしたが、Rails 3 のレイアウト ファイルに追加する必要があります。私にとっては、jQueryとの競合であることが判明しました。私はちょうどこれを置く:

<script type="text/javascript">
  jQuery.noConflict();
</script>

私のレイアウトのレールスクリプトタグとプロトタイプとjQueryの間の衝突が解決された後。ちょっと前に、削除時に確認ダイアログ ボックスが表示されていました。

この手法は、link_to を使用してレコードを削除しようとしたときの元の問題も解決しました。link_to を使用すると、destroy コマンドがレコードの表示ページにリダイレクトされるように見えました。したがって、私が見た他の解決策に基づいて button_to に移動しましたが、確認はありませんでした。jQuery と Prototype には、もっと根深い問題があるのではないかと思います。

これはすべて、レイアウト ファイルに Prototype または :defaults を含める必要なく正常に動作しているように見えた、アップグレードされた Rails 2.3.5 アプリで発生しました。

ちなみに、私は次の指示に従いました。

http://webtech.union.rpi.edu/blog/2010/02/21/jquery-and-rails-3/

このプロジェクトのプロトタイプをすべて試してみて、代わりにRails 3のjQuery gitサブモジュールを使用してください。これらの指示に従ってもうまくいきませんでした.link_toを使用するときは、button_toとshowページで確認ダイアログが表示されませんでした。私はそれについて言及したいと思ったので、誰かがこれを試す手間を省いてください。

于 2010-09-01T14:01:55.260 に答える
1

まだコメントできないため、上記の回答に対するトピック外のコメント:(

@robeastham:あなたが遭遇した問題のいくつかに役立つかもしれないいくつかのコメントを残すと思いました.

ActiveRecord から Mongoid に切り替えて以来、「インデックス ページではなく、ショー ページにリダイレクトされるリンクを破棄する」という問題も抱えていましたが、実際の解決策は見つかりませんでした (プロトタイプは既に削除されています)。ただし、クリーンに機能する回避策は、:location を使用して明示的にリダイレクト パスを指定することです。

respond_with @themodel, :location => themodels_url

ボタンで確認ポップアップを表示するには、次のようにします。

button_to "Button Name", { :controller => "your/controller", :action => :action_name, :confirm => "Text for the pop-up"}, { :method => :<method name> }

例えば

button_to "Click Here", { :controller => "home", :action -> :set_completed, :confirm => "Mark the item complete?" }, { :method => :put }
于 2010-11-27T22:42:44.030 に答える
0

これは私のために働いた:

<%= link_to "Recommend", recommend_user_path(@user), :remote => true %>

これが views\layout\application.html.erb (または同等のもの) にあることを確認します。

<%= csrf_meta_tags %>

Rails v3.2.2 は「タグ」ではなく「タグ」を使用することに注意してください。

于 2012-03-13T12:46:49.420 に答える