undefinierte Methode `protect_against_forgery? ' für # <# <Klasse: 0x0
Ich habe den folgenden Code in meiner routes.rb-Datei.
resources :users do
member do
get :following,:followers
end
collection do
put :activate_email
end
end
Und ich habe einen Benutzer-E-Mail-Aktivierungslink wie diesen:
<%= link_to "Activate",activate_email_users_url(email_token: @user.email_token),method: :put %>
Wenn ich auf den Aktivierungslink klicke, ist dies die URL, die generiert wird
http://localhost:3000/users/activate_email?email_token=WWNvMN-r_lXgovrQiDlSSQ
Update: Ok, also ich glaube ich weiß was das Problem ist. Wenn ich mir die HTML-Quelle der Aktivierungs-E-Mail in meinem Google Mail-Konto ansehe, die link_to enthält, gibt es keine
data-method='put'. Das scheint also das Problem zu sein. Es wird immer eine Standard-GET-Anforderung anstelle von PUT gesendet. Dies ist meine Datei user_mailer / registration_confirmation.html.erb
<%= javascript_include_tag "application" %>
</head>
Bitte klicken Sie auf den folgenden Link, um Ihre E-Mail zu aktivieren. <% = Link_to "Activate", activate_email_users_url (email_token: @ user.email_token), method:: put%>
Dies gibt den folgenden Fehler:
undefined method `protect_against_forgery?' for #So , the code <%= javascript_include_tag "application" %> is causing this error. Is there any way around this ?