2

在我的导航列表中,我有一个包含所有用户的下拉框选择,仅供管理员使用。管理员可以选择一个用户,并通过ajax更新视图以显示所选用户的信息。

视图更新如下:

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

但是,我想要实现的是,如果我更改为另一个视图/url(例如我的帐户 html.erb 到 mygraph.html.erb)或刷新我的页面,我希望用户下拉框选择与用户选择保持一致我做了。

我想用 Rails cookie 来做到这一点。但我必须重定向到控制器来设置 cookie。

我尝试了一个 POST ajax 调用,

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

它不起作用,但出于某种原因,我已经怀疑它会这么简单。

我应该如何实施这个解决方案?

4

1 回答 1

4

您不必重定向到控制器操作。您可以对控制器操作进行 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 回答