2012-05-03 5 views
2

は、私はそうのように、リンクをサインアウト/における工夫サインを持っている:JavascriptリダイレクトのHTTPメソッドが含まれていますか?私のレイアウトで

=if user_signed_in? then link_to "_", destroy_user_session_path, :method => :delete else link_to "_", new_user_session_path, :method => :get end 

これは、リンクを構築するためにレールのヘルパーを使用し、次のHTMLに解決:

<a data-method="get" href="https://stackoverflow.com/users/sign_in">_</a> 

私はすべてのリンクをボタンに変換しており、URLをonClick関数に渡してブラウザをリダイレクトしました。この場合、私はHTTPメソッドを指定する必要があるので、単純なリダイレクトがそのトリックを行うとは思わない。これを行うにはこれが正しい方法ですか、もしそうなら、JavascriptにHTTPメソッドについて教えてもらえますか?

+0

xmlhttprequest。 – rlemon

+0

私はそれを働かせることができませんでした。 –

答えて

2

は、[OK]をありがとう、私はXMLHttpRequestのを試してみましたが、それは仕事を得ることができませんでした。私は一種のhacktasticである、これをやってしまったが、それは動作します:

login = function(url) { 
$.ajax({ 
    url: url, 
    type: "GET" 
}).done(function(){ 
    window.location.href = url; 
}); 

}

logout = function(url) { 
$.ajax({ 
    url: url, 
    type: "DELETE" 
}).done(function(){ 
    window.location.href = "/"; 
}); 
0

ほとんどのブラウザは、HTTP動詞の完全な色域をサポートしていません。そのため、Railsは隠し変数を使用して、意図したHTTPメソッドを指定します。

RESTfulルーティングでRailsが使用するHTTP動詞を変更するには、<input type="hidden" name="_method" ... />フィールドを更新する必要があります。

+0

私はボタンのonClickにjavascript関数を渡すことを計画していました。私はこれを達成するために何をjavascriptで書くだろうか? ありがとう –

関連する問題