Rails + Ajax - 基于组合框选择更新视图?

时间:2011-10-29 05:48:25

标签: ruby-on-rails ruby-on-rails-3 jquery

只是单挑,就ajax来说,我是一个初学者,我只是想找到自己的方式,所以请耐心等待我:)

我有一个带有组合框的视图(通过collection_select生成),我在该表单的一侧显示一些数据,基本上提供了有关用户选择的更多详细信息。

我想要实现的是,只要客户在组合中做出不同的选择,就能够在侧面更改该描述。基本上,弄清楚当前的选择是什么,从模型中请求数据,在屏幕上显示返回的数据。

实现这一目标的最简单/最优雅的方法是什么?我认为理解这个过程对我来说是一个很好的启动进入异步View世界的其余部分。

谢谢!

1 个答案:

答案 0 :(得分:0)

在这种情况下,我认为不需要ajax。只需预加载所有描述值并将其存储在隐藏的div中:

<div class="description" id="choice1">
   description for choice1 ...
</div>

 ...

然后将它们全部隐藏起来:

// somewhere in your stylesheet
div.description {
  display: none;
}

最后在客户端,绑定到组合框的通缉事件:

   // checkout documentation for other events, like select 
   $('some_id').change(function(data){
     $('div.description').css('display', 'none');

     var id = // get information about selected choice and figure out the id of description
     $('div.description#' + id).css('display', 'block');
   });

Chekout文档有关确切的详细信息,但主要想法应该是清楚的。通过这种方式,您可以为自己节省一些不必要的服务器请求。