我有UsersController,在这个控制器中我正在加载用户的帖子,如下所示:
def welcome
@postss = Post.page(params[:page]).per_page(10)
render 'users/show'
end
然后在users/show.html.haml
#posts
= render 'posts/index', :posts => @postss
= will_paginate @postss
在users/show.js.erb
alert('a');
$('#posts').append('<%= j render('posts/show') %>');
<% if @postss.next_page %>
alert('c');
$('.pagination').replaceWith('<%= j will_paginate(@posts) %>');
<% else %>
alert('c');
$('.pagination').remove();
<% end %>
问题是,当我加载页面时,我在控制台中看到此错误消息:
ActionView::Template::Error (undefined local variable or method `post' for #<#<Class:0x007ff707e647d0>:0x007ff726648d98>):
但我无法检测到问题所在 - 我将alert
消息放入 JS 文件中,但没有弹出......我将不胜感激每一个建议。
非常感谢
编辑: 我关注了这个话题。我的代码的不同之处在于,在块index.html.erb中我使用@postss而不是@posts,因为这个变量是空的(我不知道这是否是要点上的错字)