我有这个奇怪的问题,尝试使用表单助手呈现表单时会出现以下错误:NoMethodError in Admin#login undefined method '[]' for nil:NilClass
,奇怪的瘦,我只在{{{{{{{ 1}}控制器,而不是任何其他控制器。
我尝试将表单粘贴到与不同控制器关联的视图中,并且渲染得很好。我也尝试将一个工作表单从一个不同的页面粘贴到这个页面中,它给了我同样的错误。
这是我的控制人员:
Admin
这是我的class AdminController < ApplicationController
def login
end
def session
end
end
:
login.html.erb
这是运行<%= form_with url: login_path do |form| %>
<%= form.text_field :title %>
<% end %>
:
rake routes
此表单适用于任何其他控制器,而不是 root GET / website#index
admin GET /admin(.:format) admin#admin
login GET /login(.:format) admin#login
POST /login(.:format) admin#session
,其他页面上的其他表单不适用于此页面。我使用AdminController
和form_tag
收到同样的错误。
Rails版本5.1.4
Ruby Version 2.3.2
这是我得到的堆栈跟踪:
form_for
答案 0 :(得分:1)
想出来。
当我定义一个名为session
的控制器操作时,它覆盖了session
变量(在这种情况下为nil
),这打破了另一个调用session
的librry