是否可以在rails / erb中的每个循环内传输所有数据?

时间:2014-10-27 18:58:53

标签: jquery ruby-on-rails ruby erb partials

我正在尝试创建一个应用程序,其中我有关于每个消息线程的某些数据,但是想要在页面上的不同位置显示该数据。在我的所有消息列表中,我有以下代码:

<div class="contactThreadList">
    <% @threads_data.each do |thread| %>
        // summary data regarding the thread
    <% end %>
</div>

然后,当用户点击某个帖子时,会在页面的另一侧显示更多详细信息,有点像Gmail或Yahoo上的预览窗格。但是,我已经将所有数据加载到页面上,而不是使用partial来重新获取数据。是否可以在页面的另一部分使用相同的线程?这是我想象的代码:

页面的另一部分不在contactThreadList div

<div class="previewPane">
    <p><%= selectedthread.message %></p>
</div>

1 个答案:

答案 0 :(得分:1)

如果我理解正确的话。

要存储加载的数据,您可以使用

<div class="contactThreadList">
    <% @threads_data.each do |thread| %>
        <div id="thread_<%= thread.id %>" data-thread=<%= thread.to_json %> > 
           // summary data you want to display
        </div>
    <% end %>
</div>

然后在js控制台中尝试:

$("#thread_1").data("thread")

它将被解析为js对象。

但如果你想要很多这样的功能,那么最好使用一些js框架,如Angular,Ember,Backbone:)