【发布时间】:2014-12-22 21:03:05
【问题描述】:
我想通过 javascript 呈现以下代码(通过 AJAX 进行 Kaminari 分页):
<div id="paginator-jobs-top" class="text-center">
<%= paginate @jobs, remote: true,
theme: 'twitter-bootstrap-3',
param_name: 'jobs',
params: { tab: 'jobs' },
pagination_class: 'pagination-small pagination-centered' %>
</div>
<div id="jobs">
<%= render partial: 'jobs/job_panel', collection: @jobs, as: :job %>
</div>
<div id="paginator-jobs-bottom" class="text-center">
<%= paginate @jobs, remote: true,
theme: 'twitter-bootstrap-3',
param_name: 'jobs',
params: { tab: 'jobs' },
pagination_class: 'pagination-small pagination-centered' %>
</div>
我正在尝试使用这个 js.erb 代码,但它根本不起作用:
$('#paginator-jobs-top').html('<%= escape_javascript(paginate(@jobs,
remote: true,
theme: "twitter-bootstrap-3",
param_name: "jobs",
params: { tab: "jobs" },
pagination_class: "pagination-small pagination-centered").to_s) %>');
$('#jobs').html('<%= escape_javascript(render partial: "jobs/job_panel",
collection: @jobs,
as: :job) %>');
我尝试了其他变体,但都没有奏效。如果有人知道如何在 js.erb 方法中呈现上述代码,我很想听听!
我从上面得到的错误是:
ArgumentError - wrong number of arguments (0 for 1)
当我在 js.erb sn-p 中使用稍微不同的行(没有',job:j')尝试它时,我得到:
NameError - undefined local variable or method `job' for #<#<Class:0x
**** 根据下面 Blelump 的建议,我将代码更改为此 ***
<div id="jobs">
<%= render partial: "jobs/job_panel", collection: @jobs, as: :job %>
</div>
在没有 AJAX 的情况下效果很好(这实际上是在 Rails 中呈现集合部分的正确方法,我之前的错误)。但是,当我将 js.erb 文件调整为此时,我仍然收到错误消息:
$('#jobs').html('<%= escape_javascript(render partial: "jobs/job_panel",
collection: @jobs,
as: :job) %>');
错误又来自Kaminari:
NoMethodError - undefined method `current_page' for nil:NilClass:
kaminari (0.16.1) lib/kaminari/helpers/action_view_extension.rb:18:in `paginate'
【问题讨论】:
-
你有什么错误吗?
-
我得到的一个错误是:NameError - undefined local variable or method `job' for #:0x00000108af5330> 另一个尝试的不同错误:ArgumentError - 参数数量错误( 0 比 1)
标签: ruby-on-rails ajax partials kaminari