Ruby on rails Rails AJAX PUT方法不工作和Heroku错误
我有一个文章模型和一个文章控制器。 索引操作:Ruby on rails Rails AJAX PUT方法不工作和Heroku错误,ruby-on-rails,ajax,heroku,Ruby On Rails,Ajax,Heroku,我有一个文章模型和一个文章控制器。 索引操作: def index @article=Article.find(id: params[:id]) respond_to do |format| format.html format.js end end index.html.erb 但是,在这一部分中什么也没有表现出来。p标签是空的。日志中没有错误。 假设没有与查询匹配的记录,那么它应该给出nil错误 同样在heroku上,当我转到索引页面时,它会抛出错误,本地一切正常 Act
def index
@article=Article.find(id: params[:id])
respond_to do |format|
format.html
format.js
end
end
index.html.erb
但是,在这一部分中什么也没有表现出来。p标签是空的。日志中没有错误。
假设没有与查询匹配的记录,那么它应该给出nil错误
同样在heroku上,当我转到索引页面时,它会抛出错误,本地一切正常
ActionView::Template::Error未定义nil:NilClass的方法“name”:
那么这里发生了什么?rails中的ajax是如何工作的?从上面的错误中我可以得到的是,当我访问index操作时调用它时,它试图检测@article变量,它是nil,同时它也呈现了_article.html.erb部分。第一次肯定@article是nil。只有在我单击链接并发出ajax请求后才会进行查询。rails如何知道这是ajax请求
我做错了什么
谢谢你的帮助
更新
现在,尝试了一些东西,即使我没有在index.js.erb中放入任何内容,@articles变量也会在控制台中正确呈现 你能试试吗
Article.find(params[:id])
如果没有,请检查是否存在具有您正在传递的id的文章对象。存在一篇具有该id的文章。我只是显式地传递散列参数以确定我在做什么。打赌查询在控制台中正确返回,当我在那里查看html时,_article.html.erb模板正确呈现。它只是没有显示在浏览器页面上。在Heroku上根本不起作用。@whoIsCraig试试{:article=>@article}%>现在我得到的错误与在Heroku中得到的错误相同。nil的未定义方法名:NilClass'Bet'n你能告诉我为什么heroku会给出那个错误吗?你能回答问题的最后一部分吗?rails中的ajax是如何工作的?为什么所有的东西都在控制台中工作而不是在控制台外?您的点击功能没有正确关闭。@hawk,这是一个输入错误:
$('#article').update("<%=escape_javascript(render(@article))%>");
<p><%= @article.name %></p>
get '/index', to: "articles#index"
put '/index', to: "articles#index"
Article.find(params[:id])