2009-07-01 229 views
0

我正在使用Ruby on Rails,并有一张表,我试图排序。 tablesorter jquery插件,它正确地加载在我的文件中。我有jquery在它前面打电话。我有这个代码在我的JavaScript。在轨道上的红宝石Jquery Tablesorter

$(document).ready(function(){ 
    $("#myTable").tablesorter({widgets: ['zebra']}); 
    $("#business").tablesorter({sortList: [[0,0], [1,0]]}); 
}); 

我有2个表格。我有我的表是静态的,只是为了看代码是否正常工作(和它)。我可以通过点击任何标题进行排序。

<table id="myTable"> 
    <thead> 
    <tr> 
     <th>Last Name</th> 
     <th>First Name</th> 
     <th>Email</th> 
     <th>Due</th> 
     <th>Web Site</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td>Smith</td> 
     <td>John</td> 
     <td>[email protected]</td> 
     <td>$50.00</td> 
     <td>http://www.jsmith.com</td> 
    </tr> 
    <tr> 
     <td>Bach</td> 
     <td>Frank</td> 
     <td>[email protected]</td> 
     <td>$50.00</td> 
     <td>http://www.frank.com</td> 
    </tr> 
    <tr> 
     <td>Doe</td> 
     <td>Jason</td> 
     <td>[email protected]</td> 
     <td>$100.00</td> 
     <td>http://www.jdoe.com</td> 
    </tr> 
    <tr> 
     <td>Conway</td> 
     <td>Tim</td> 
     <td>[email protected]</td> 
     <td>$50.00</td> 
     <td>http://www.timconway.com</td> 
    </tr> 
    </tbody> 
</table> 

但我也有我的另一个表是从数据库动态拉动。根本不起作用,当我点击标题时什么也不做。

<table width="650" cellpadding="6" cellspacing="0" id="business"> 
    <thead> 
    <tr> 
     <th>Business Name</th> 
     <th>Address</th> 
     <th>Category</th> 
     <th>Description</th> 
    </tr> 
    </thead> 
    <% @businesses.each do |business|if !business.approved %> 
    <tbody> 
     <tr> 
     <td><a class="Contact<%=h business.id %>" href="#"><%=h business.name %></a></td> 
     <td><%=h business.address %></td> 
     <td><%=h business.business_category.name %></td> 
     <td><%=h business.description %></td> 
     </tr> 
    </tbody> 
    <% end %> 
</table> 

任何帮助将是伟大的。

+1

你有没有解决这个问题? – Dsel 2013-08-15 22:08:47

+0

请回到什么工作。 – DDDD 2013-09-24 23:21:01

回答

0

我假设你正在做一个ajax调用来请求带有业务id的动态表?如果是这样,你需要在表被添加到dom时调用tablesorter方法,通常在.ajax的成功方法中。如果你可以证明你是如何请求插入业务表的,我可以为你提供帮助。

0

不确定在问题表的输出中重复的TBODY标记是否会令tablesorter混淆。

1

问题是您的TBODY标签正在为每行输出,这是不正确的语法。每桌只能有一个TBODY。您的代码应该是这样的:

<tbody> 
    <% @businesses.each do |business|if !business.approved %> 
    <tr> 
     ... 
    </tr> 
    <% end %> 
</tbody> 

编辑(2015年5月13日):

更好的语法将查询相关的结果,而不是所有结果的数据库,然后执行条件为原本说明。

<tbody> 
    <% @businesses.where(approved: false).each do |business| %> 
    <tr> 
     ... 
    </tr> 
    <% end %> 
</tbody> 

最佳的做法是范围在模型中的查询:

范围:not_approved, - > {其中(已批准:假)}

和在控制器执行查询:

@businesses = Business.not_approved 

,然后在视图中,就列举结果:

<% @businesses.each do |business| %> 
0

这也解决了我使用django的问题。移动标签内的{%endfor%}解决了问题