2

私のナビゲーションリストには、管理者だけが利用できるすべてのユーザーを含むドロップボックスの選択肢があります。管理者はユーザーを選択でき、ビューはajaxを介して更新され、選択したユーザーの情報が表示されます。

ビューは次のように更新されます。

$(#Users).change(function() {
    $ajax({
        ... yada yada update information in view.

ただし、実装したいのは、別のビュー/ URL(アカウントhtml.erbからmygraph.html.erbなど)に変更したり、ページを更新したりする場合に、ユーザーのドロップボックスの選択をユーザーの選択と維持することです。作りました。

これを行うためにrailscookieを使用することを考えました。ただし、Cookieを設定するにはコントローラーにリダイレクトする必要があります。

POSTajax呼び出しを試みました。

$(#Users).change(function() {
  $.ajax({
    ...
    data: {
       "<%= cookies[:selected] %>": this.value

それはうまくいきませんが、何らかの理由で、私はそれがそれほど単純になるのではないかとすでに疑っていました。

このソリューションをどのように実装する必要がありますか?

4

1 に答える 1

4

コントローラーアクションにredirect_toする必要はありません。コントローラアクションへのajax呼び出しを行うことができます。次のように、コントローラーアクションでCookieを設定できます。

 $(function(){
   $('#user_select')change(function(){
     value = $(this).val()
     $.post("controller/action",{selected_value : value}, function(data, status){
       if(status == "success")
       {
         alert(data);
       } 
    });
   return false;
   })
  })

コントローラ:

 def action
   cookies[:name]=params[:selected_value]
   render :text => "success"
 end 
于 2013-01-11T16:32:47.063 に答える