如何让1列中的数据为Rails 3中第2列的内容提供动力?

时间:2011-01-13 09:44:03

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

假设我在左栏中有一个用户列表,由<%= current_user.clients %>生成,第二列默认为空。

但是,当用户点击其中一个链接时,第二列将填充与该用户关联的项目 - 不会重新加载整个页面(即使用AJAX)。

我还想继续这个过程,所以当他们点击该用户的项目时,第三列会填充其他内容(例如图片的名称等)。

如何在Rails中实现这一目标?

2 个答案:

答案 0 :(得分:3)

我假设您使用的是Rails 3和jQuery(我不是很精通原型)。在Rails 3中切换jQuery for prototype很容易:https://github.com/rails/jquery-ujs

链接:

<a href="#" class="first_column_link" data-client-id="<%= client.id %>">Something</a>

使用JavaScript和jQuery,编写一个吸收类first_column_link链接的函数(请重命名为更合理的东西):

$(function() {
  $('.first_column_link').bind('click', function() {
    $.getJSON('/clients/' + $(this).attr('data-client-id'), function(data) {
      // Populate the second column using the response in data
    });
  });
});

这不适用于不支持或禁用JavaScript的浏览器。优雅地降级可能是一个好主意,但没有更多的背景,我不能建议你如何做到最好。

答案 1 :(得分:0)

<%= link_to_remote current_user.clients, go_to_controller_path %>

从那里继续。

go_to_controller_path路由到一个动作,该动作使javascript更新第二列(可能是部分的)。