我创建了一个名为more的新微控制器操作来接收ajax请求。
def more
micropost=Micropost.find_by(params[:id])
@answers=micropost.answers
respond_to do |format|
format.html {redirect_to micropost}
format.js
end
end
我创建了jquery file- more.js.erb
$(".microposts").html("<%= escape_javascript(render('users/unfollow')) %>"); `
用部分替换内容 我的路线文件就像
resources :microposts, only: [:edit,:create,:destroy,:update,:show,:more] do
member do
get :more
end
end
我用
在视图中调用javascript文件 <%= link_to "load more",more_micropost_path(micropost),remote: true %>
它使用普通的html请求而不是ajax.当我点击链接时没有任何反应。我看到一些人提出了类似的问题,但修复程序对我不起作用。有人可以帮我弄这个吗。提前致谢.. firebug控制台中的错误是
`500内部服务器错误。 MicropostsController中的NoMethodError#more。 nil的未定义方法ID:NilClass&#39;
firebug错误控制台在右侧显示此jquery行。我不确定它是否是一个错误。
lixhr.send((options.hasContent&amp;&amp; options.data)|| null);
答案 0 :(得分:0)
根据您在评论中发布的错误判断,此行可能存在问题:
micropost = Micropost.find_by(params[:id])
find_by
需要哈希值,因此请使用find
micropost = Micropost.find(params[:id])
或
micropost = Micropost.find_by(id: params[:id])