gpt4 book ai didi

ruby-on-rails - js.erb 文件中的 if 语句基于 param_name will_paginate (Ajax 调用)

转载 作者:行者123 更新时间:2023-12-01 03:17:37 27 4
gpt4 key购买 nike

我正在尝试弄清楚如何使用 will_paginate Gem 在同一页面(同一 Controller 操作)上进行多个 Ajax 调用。到目前为止,我已经为每个实例变量指定了自己的 param_name,以便它们不使用 :page

的默认参数

示例 Controller

@meats= Recipe.meat_recipes.paginate(:page => params[:meat_recipes], :per_page => 1)
@vegrecipes = Recipe.veg_recipes.paginate(:page => params[:veg_recipes], :per_page => 1)
@desserts = Recipe.dessert_recipes.paginate(:page => params[:dessert_recipes], :per_page => 1)

然后在 View 中

 <%= will_paginate @meats,  :param_name => 'meat_recipes'  %> (repeat this for individual instance variables)

所以这部分很好。我正在做的是在 AJAX 请求发出时加载部分内容

.js.erb 文件

$('#meatRecipes').html('<%= escape_javascript(render partial: 'meatrecipes') %>');
$.setAjaxPagination();

所以目前我的肉实例变量工作正常。那么如何根据params进行if语句呢?

例如我已经尝试过这个

<% if @meats %>
$('#meatRecipes').html('<%= escape_javascript(render partial: 'meatrecipes') %>');
$.setAjaxPagination();
<% end %>

<% if @vegrecipes %>
$('#vegRecipes').html('<%= escape_javascript(render partial: 'vegrecipes') %>');
$.setAjaxPagination();
<% end %>

也尝试过

<% if @meats[:param_name] == 'meat_recipes' %>
$('#meatRecipes').html('<%= escape_javascript(render partial: 'meatrecipes') %>');
$.setAjaxPagination();
<% end %>

<% if @vegrecipes[:param_name == 'veg_recipes' %>
$('#vegRecipes').html('<%= escape_javascript(render partial: 'vegrecipes') %>');
$.setAjaxPagination();
<% end %>

但这不起作用。所以我想我的问题是我应该使用什么作为我的参数来确保为特定的分页部分调用正确的部分。

希望我已经正确解释了这一点

最佳答案

好吧,所以我需要将此解决方案归功于@karl,但这可行......除非有人有更好的方法?

 <% if params[:meat_recipes] %>
$('#meatRecipes').html('<%= escape_javascript(render partial: 'meatrecipes') %>');
$.setAjaxPagination();
<% end %>

<% if params[:veg_recipes] %>
$('#vegRecipes').html('<%= escape_javascript(render partial: 'vegeterianrecipes') %>');
$.setAjaxPagination();
<% end %>

<% if params[:dessert_recipes] %>
$('#dessertRecipes').html('<%= escape_javascript(render partial: 'dessertrecipes') %>');
$.setAjaxPagination();

关于ruby-on-rails - js.erb 文件中的 if 语句基于 param_name will_paginate (Ajax 调用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13799306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com