Ruby on rails 4 未定义的方法“[]';对于nil:NilClass用于活动模型和活动记录
控制器 型号 查看Ruby on rails 4 未定义的方法“[]';对于nil:NilClass用于活动模型和活动记录,ruby-on-rails-4,Ruby On Rails 4,控制器 型号 查看 我刚刚显示了代码的Abstract。它为nil:NilClass返回未定义的方法“[]” 有人能告诉你这个问题的解决方法吗?对你最初的问题的回答:从错误中看,它看起来像params[:query]返回Nil,因为你正在寻找一个嵌套的参数,而Nil不存在。要解决此问题,请尝试将for方法更改为方法:“post”并创建create操作 AJAX实现: 将remote:true添加到表单中,因此它应该类似于: <%= form_for @query, url: queri
我刚刚显示了代码的Abstract。它为nil:NilClass返回未定义的方法“[]”
有人能告诉你这个问题的解决方法吗?对你最初的问题的回答:从错误中看,它看起来像params[:query]
返回Nil
,因为你正在寻找一个嵌套的参数,而Nil
不存在。要解决此问题,请尝试将for方法更改为方法:“post”
并创建create
操作
AJAX实现:
将remote:true
添加到表单中,因此它应该类似于:
<%= form_for @query, url: queries_new_path, method: "post", remote: true do |f| %>
创建一个create.js.erb
文件,您可以在其中定义ajax回调(渲染、隐藏等内容)。如果在创建操作中执行@query.save
或类似操作,则可以在视图中执行,如下所示:
<% if @query.save %>
$(".some_success_block").html("some success message")
<% else %>
$(".some_outter_div_around_form").html("<%= j render 'form' %>")
<% end %>
$(“.some_success_block”).html(“some success message”)
$(“.some\u outter\u div\u around\u form”).html(“”)
这要求您有一个名为\u form.html.erb
的局部视图,其中包含您的表单
然后您可以将new.html.erb
中的表单替换为
这应该可以做到
关于Rails中AJAX的更多信息:从错误中,它看起来像是params[:query]
返回Nil
,因为您正在寻找一个嵌套的参数,该参数对于Nil不存在。要解决此问题,请尝试将for方法更改为方法:“post”
并创建create
action。任何人都可以告诉ajax实现显示输出。
<%= form_for @query, url: queries_new_path, method: "get" do |f| %>
<td><%= f.text_field :query_string %></td>
<%= form_for @query, url: queries_new_path, method: "post", remote: true do |f| %>
respond_to do |format|
format.js {}
end
<% if @query.save %>
$(".some_success_block").html("some success message")
<% else %>
$(".some_outter_div_around_form").html("<%= j render 'form' %>")
<% end %>