【发布时间】:2012-08-31 08:24:06
【问题描述】:
我正在尝试在不使用任何菜单分页宝石的情况下进行 ajax 分页(类似于模板)。例如,要在品牌菜单名称的鼠标悬停时显示品牌菜单,我正在使用“menu_brand”渲染,因为当时页面加载时只会从数据库中获取品牌。对于这个渲染视图,我必须执行分页功能。我成功地在控制台日志中获取当前页面内容。
在控制器中是这样的
def menu_brand
$cnt=Brand.count
end
def menu_brand_page
$st=0
if !(params[:startingRow].nil?)
$st = params[:startingRow].to_i
end
$brands=Brand.limit(24).offset($st)
end
在 _menu_brand.html.erb 中
<% if !($cnt.nil?) %>
<% @pg = ($cnt / 24).ceil %>
<div class="paginator">
<%
for j in 0..@pg %>
<%= link_to "#{j+1}", "javascript:GotoPage('#{j*24}')", %>
<% end
%>
</div>
<table width="700px"; align="center" id="menupage">
<%= render "menu_brand_page"%>
</table>
<% end %>
<script type="text/javascript">
function GotoPage(startrow) {
var theURL = '/menu_brand_page/'+<%= params[:deptid] %>
+'/' + startrow;
$.ajax({
url : theURL
});
}
</script>
在 menu_brand.js.erb 中
$('#bval').html('<%= escape_javascript render ('menu_brand') %>');
在_menu_brand_page.html.erb中
<% $brands.each do |brand| %>
<%= brand.name %>
<% end %>
在 menu_brand_page.js.erb 中
$('#menupage').html('<%= escape_javascript render ('menu_brand_page') %>');
在布局中
<div id="bval">
<%= render "menu_brand" %>
</div>
<script type="text/javascript">
$(document).ready(function() {
var theBrand = '/menu_brand/' + <%= params[:deptid] %>;
$.ajax({
url : theBrand
});
});
</script>
我的路由器.rb
match "menu_brand_page/:deptid/:startingRow" => "product_details#menu_brand_page"
match "menu_brand/:deptid" => 'product_details#menu_brand'
控制台日志输出
$('#menupage').html('\n\n \nBC\n\n\n \nBC 鞋类\n\n\n \nBCBG\n\n\n\n\n \nBCBGeneration\n\n\n \nBCBGMAXAZRIA\n\n\n \nBCX\n\n\n\n\n \n要有创意\n\n\n \n沙滩兔\n\n\n \n沙滩屋\n\n\n \n\n \n海滨别墅女\n\n\n \nbebe\n\n\n \nBecca\n\n\n\n\n \nBed Stu\n\n\n \nBellatrix\n\n\n \nBELLE BY SIGERSON MORRISON\n\n\n\n\n \nBelle Du Jour\n\n\n \nBelle Noel\n\n\n \nBen Amun\n\n\n\n\n \nBENCH\n \n\n \nBerek\n\n\n \nBernardo\n\n\n\n\n \n纽约伯尼\n\n\n \nBETMAR\n\n\n \nBetsey Johnson\n\n\n\n');
请帮助我不明白为什么 menu_brand 视图中的内容没有改变。
【问题讨论】:
-
没有直接答案,但我建议查看日志,看看是否提取了正确的数据。如果是这样,那么您的显示方式或将其放入视图的方式有问题。如果数据错误,那么您就知道这是您的查询。您似乎也经常使用 $ 变量。这些是全球性的。通常,如果您希望在视图中可以访问变量,则使用实例变量,例如
@brands。不确定这是否是原因。
标签: ruby-on-rails-3 jquery pagination render