我正在努力解决,我认为这是一个简单的问题。我正在创建一个注册表单,您可以在其中创建帐户和用户(一个帐户可以有多个用户)。但是,在加载 new.html.erb 视图时,我收到以下错误:

undefined method `protect_against_forgery?' for #<#<Class:0x00>,ruby-on-rails,ruby-on-rails-5"/>
	














首页 > 解决方案 > 未定义的方法“protect_against_forgery?” 对于#<#

我正在努力解决,我认为这是一个简单的问题。我正在创建一个注册表单,您可以在其中创建帐户和用户(一个帐户可以有多个用户)。但是,在加载 new.html.erb 视图时,我收到以下错误:

undefined method `protect_against_forgery?' for #<#<Class:0x00>

问题描述

我正在努力解决,我认为这是一个简单的问题。我正在创建一个注册表单,您可以在其中创建帐户和用户(一个帐户可以有多个用户)。但是,在加载 new.html.erb 视图时,我收到以下错误:

undefined method `protect_against_forgery?' for #<#<Class:0x00>

account_controller.rb 看起来像这样:

class AccountController < ApplicationController

    def new 
        @account = Account.new
        @account.users.build
    end

end

和观点:

    <h2>Create account</h2>

  <%= form_with model: @account, url: :new_account do |f| %>
      <%= render 'shared/error_messages', :object => f.object %>

      <h4><%= f.label :name, 'Account Name' %></h4>
      <%= f.text_field :name, :required => true, :placeholder => 'Your account name' %>


      <%= f.fields_for :users do |user_form| %>
          <h4><%= user_form.label :name %></h4>
          <%= user_form.text_field :name, :autofocus => true, :required => true, :placeholder => 'Your name' %>


          <h4><%= user_form.label :email %></h4>
          <%= user_form.email_field :email, :required => true, :placeholder => 'Your email' %>


          <h4><%= user_form.label :password, :required => true %></h4>
          <%= user_form.password_field :password, :required => true, :placeholder => 'Enter a 8 character password'%>

          <h4><%= user_form.label :password_confirmation, :required => true %></h4>
          <%= user_form.password_field :password_confirmation, :required => true, :placeholder => 'Confirm password' %>

          <div class="remember-me">
              <%= f.check_box :terms_and_conditions %>
              <%= link_to 'Accept terms and conditions', 'todo', :target => '_blank' %>
          </div>
      <% end %>

      <input type="submit" class="btn" value="Create account" />
  <% end %>

我找不到任何其他有完全相同问题的人(最近的一个是邮件模板问题,但找不到连接)。

希望有人能引导我朝着正确的方向前进,因为我对此视而不见。


从非 Azure SQL 数据库恢复备份

我们在 Azure 上有数据库,我们已经成功地从以前的服务器复制了架构。现在我们要通过它恢复数据。脚本太长了,我们无法在控制台中运行它,也无法在控制台中的管理工作室中运行它,我们无法找到通过上传转储文件来恢复数据库备份的任何选项。

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

解决方案


我在@vise 的帮助下发现了错误。我不知何故将该项目创建为 API 项目,并且在我的 application_controller.rb 中它继承自 API 而不是 Base。

我改变了这个并添加了:

protect_from_forgery with: :exception

它奏效了。谢谢您的帮助!


推荐阅读