Rails形成的助手不仅仅在我的一个控制器中工作

时间:2018-02-11 17:34:05

标签: ruby-on-rails ruby ruby-on-rails-5

我有这个奇怪的问题,尝试使用表单助手呈现表单时会出现以下错误: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 ,其他页面上的其他表单不适用于此页面。我使用AdminControllerform_tag收到同样的错误。

Rails版本5.1.4

Ruby Version 2.3.2

这是我得到的堆栈跟踪:

form_for

1 个答案:

答案 0 :(得分:1)

想出来。

当我定义一个名为session的控制器操作时,它覆盖了session变量(在这种情况下为nil),这打破了另一个调用session的librry