【发布时间】:2018-02-11 17:34:04
【问题描述】:
我遇到了一个奇怪的问题,尝试使用表单助手呈现表单时出现以下错误:NoMethodError in Admin#login undefined method '[]' for nil:NilClass,奇怪的瘦,我只在我的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 和form_for 得到同样的错误。
Rails 版本 5.1.4
Ruby 版本 2.3.2
这是我得到的堆栈跟踪:
NoMethodError: undefined method `[]' for nil:NilClass
from /home/yechielk/.rvm/gems/ruby-2.4.2/gems/actionpack-5.1.4/lib/action_controller/metal/request_forgery_protection.rb:374:in `real_csrf_token'
from /home/yechielk/.rvm/gems/ruby-2.4.2/gems/actionpack-5.1.4/lib/action_controller/metal/request_forgery_protection.rb:381:in `per_form_csrf_token'
from /home/yechielk/.rvm/gems/ruby-2.4.2/gems/actionpack-5.1.4/lib/action_controller/metal/request_forgery_protection.rb:302:in `masked_authenticity_token'
from /home/yechielk/.rvm/gems/ruby-2.4.2/gems/actionpack-5.1.4/lib/action_controller/metal/request_forgery_protection.rb:291:in `form_authenticity_token'
from /home/yechielk/.rvm/gems/ruby-2.4.2/gems/actionpack-5.1.4/lib/abstract_controller/helpers.rb:68:in `form_authenticity_token'
from /home/yechielk/.rvm/gems/ruby-2.4.2/gems/actionview-5.1.4/lib/action_view/helpers/url_helper.rb:598:in `token_tag'
from /home/yechielk/.rvm/gems/ruby-2.4.2/gems/actionview-5.1.4/lib/action_view/helpers/form_tag_helper.rb:855:in `extra_tags_for_form'
from /home/yechielk/.rvm/gems/ruby-2.4.2/gems/actionview-5.1.4/lib/action_view/helpers/form_tag_helper.rb:875:in `form_tag_html'
from /home/yechielk/.rvm/gems/ruby-2.4.2/gems/actionview-5.1.4/lib/action_view/helpers/form_helper.rb:765:in `form_with'
from /home/yechielk/Desktop/code/Personal/personal-site/app/views/admin/login.html.erb:1:in `_app_views_admin_login_html_erb___3018772792552054965_27358140'
【问题讨论】:
-
那么,您在呈现表单或提交表单时是否遇到该错误?
-
渲染时。
-
你能列出所有的铁路路线吗?
-
@Leo 已添加到问题中
标签: ruby-on-rails ruby ruby-on-rails-5