2012-03-23 13 views
0

jQuery if文内でルビコードが実行されたのはなぜですか?Rails 3 - JS内で実行されているRubyの場合

私はモーダル(Twitterのブートストラップ)と協力し、モーダルを表示/非表示されたときにセッションを設定しています、モーダルは、このコードを持っています

$("#modal").on("shown", function() { 
    <% session[:modal] = true %> 
}) 

... 

$("#modal").on("hidden", function() { 
    <% session[:modal] = nil %> 
}) 

私が欲しい時にセッションを設定することですモーダルは開かれているので、メソッドは開かれたときを知り、それをnilに設定するので、同じメソッドは閉じられた時を知る。

ありがとうございました。

答えて

0

あなたのルビーコードはブラウザ上でサーバーとJavaScriptで実行されています。したがって、すべてのルビコードはjavascriptの前に実行されます。

+0

私は何をしようとしていますか? – miligraf

+0

あなたは 'session [:modal]'を何のために使っていますか?あなたの目的をもう少し説明できますか?この方法で – Heikki

+0

:[:モーダル]私は全体的なアプローチに関連する大きな問題があると思う#launchモーダルと部分 終了 – miligraf

0

クライアントがrailsセッションで何かを変更したい場合は、サーバーにajaxリクエストを送信する必要があります。

もう1つのオプションは、railsセッションを使用する代わりにセッションCookieを使用することです。セッションクッキーは、ブラウザ内のデータを少しだけ設定している場合には最適です。 jqueryのためのいくつかのクッキープラグインがあります。 Here's one on github。

$("#modal").on("shown", function() { 
    $.cookie('is_modal', '1'); 
}) 

更新:あなたの他のコメントを読んだだけです。その値に基づいてサーバーロジックを実行している場合は、サーバーにajax呼び出しを行う必要があります。

関連する問題