неопределенный метод 'protect_against_forgery?'для # <# - PullRequest
0 голосов
/ 01 декабря 2019

Я борюсь с тем, что я считаю простым вопросом. Я создаю форму регистрации, где вы создаете и учетную запись и пользователя (учетная запись может иметь много пользователей). Однако при загрузке представления 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 %>

Я не смог найти других с такой же проблемой (самая близкая была проблема с шаблонами рассылки, но не смог найти соединение).

Надеюсь, кто-то может мне помочьв правильном направлении, так как я смотрю на это вслепую.

1 Ответ

0 голосов
/ 01 декабря 2019

Я нашел ошибку с помощью @vise. Я каким-то образом создал проект как проект API, и в моем application_controller.rb он унаследовал от API вместо Base.

Я изменил это и добавил:

protect_from_forgery with: :exception

И это сработало. Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...