假设我在左栏中有一个用户列表,由<%= current_user.clients %>
生成,第二列默认为空。
但是,当用户点击其中一个链接时,第二列将填充与该用户关联的项目 - 不会重新加载整个页面(即使用AJAX)。
我还想继续这个过程,所以当他们点击该用户的项目时,第三列会填充其他内容(例如图片的名称等)。
如何在Rails中实现这一目标?
答案 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更新第二列(可能是部分的)。