2017-06-12 4 views
2

Ich bekomme in Schienen 5. Es funktionierte richtig für eine Weile und dann gab einfach auf zu arbeiten.ActionController :: InvalidAuthenticityToken in Rails 5

# Application Controller 
class ApplicationController < ActionController::Base 
    protect_from_forgery with: :exception 
end 

Ich verwende die Schienen Helfer bilden, und Leiten in einem Formularobjekt

# price_history/new.html.erb 
<%= form_for @price_history_form, url: 'price_history' do |f| %> 
    ... 
<% end %> 

ich die Echtheit sehen Token in den HTML-Code erzeugt wird, und in die Steuerung übergeben ..

class PriceHistoriesController < ApplicationController 

Ich bin ratlos, warum das passiert. Irgendwelche Gedanken?

+0

In welcher Situation zu beginnen, werden Sie diesen Fehler zu bekommen? Oder bekommst du es immer? –

+0

Hallo @AlexanderLuna jede Formularübermittlung jetzt. Ich habe den Server mehrmals neu gestartet, den Browser geschlossen usw. – mark

+0

@mark hast du das herausgefunden? Wenn ja, zögern Sie nicht, Ihre eigene Antwort einzureichen oder markieren Sie die richtige Antwort, damit andere, die zu diesem Problem kommen, die Lösung leichter finden können. – OneNeptune

Antwort

1

Das Problem ist mit der :url Option. Gemäß diesem Rails Problem, wird es diesen Fehler zu erhöhen, wenn Sie es verwenden:

https://github.com/rails/rails/issues/24257

Anscheinend gibt es zwei Lösungen für dieses Problem:

1) Deaktivieren Turbolinks in Ihrem Formular ('data-no-turbolink' => true)

2) Entfernen render stream: true von der Controller-Aktion Rendering der Link oder Formular

2

Für alle anderen, die dies finden könnten .. Es gab zwei Probleme.

Links Turbo Hinzufügen 'data-no-turbolink' => true und dann der URL: benötigt, um mit einem /

Verwandte Themen