开发者

How do I let data in 1 column power the content of the 2nd column in Rails 3?

Say I have a list of users in the left column, generated by <%= current_user.clients %> and the second column is empty by default.

However, when the user clicks on one of the links, the second column becomes populated with the projects associated with that user - without the 开发者_运维技巧entire page being reloaded (i.e. using AJAX).

I would also like to continue the process, so when they click on a project from that user, the third column is populated with other things (e.g. the name of images, etc.).

How do I accomplish this in Rails?


I assume you are using Rails 3 and jQuery (I'm not well-versed in prototype). It's easy to switch jQuery for prototype in Rails 3: https://github.com/rails/jquery-ujs

For the link:

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

Using JavaScript and jQuery, write a function that sucks in links of class first_column_link (please rename to something more reasonable, by the way):

$(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
    });
  });
});

This doesn't work on browsers that don't support or have otherwise disabled JavaScript. Gracefully degrading would likely be a good idea, but without more context, I can't advise you how to best do it.


<%= link_to_remote current_user.clients, go_to_controller_path %>

Proceed from there.

go_to_controller_path routes to an action which renders javascript to update the 2nd column (probably with a partial).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜