método indefinido `protect_against_forgery? ' para # <# <Clase: 0x0
Tengo el siguiente código en mi archivo route.rb.
resources :users do
member do
get :following,:followers
end
collection do
put :activate_email
end
end
Y tengo un enlace de activación de correo electrónico de usuario como este:
<%= link_to "Activate",activate_email_users_url(email_token: @user.email_token),method: :put %>
Cuando hago clic en el enlace de activación, esta es la url que se genera
http://localhost:3000/users/activate_email?email_token=WWNvMN-r_lXgovrQiDlSSQ
Actualización: Ok, así que creo que sé cuál es el problema. Cuando miro la fuente html del correo electrónico de activación en mi gmail que contiene el link_to, no hay
data-method='put'. Ese parece ser el problema. Siempre está enviando una solicitud GET predeterminada en lugar de PUT. Este es mi archivo user_mailer / registration_confirmation.html.erb
<%= javascript_include_tag "application" %>
</head>
Haga clic en el siguiente enlace para activar su correo electrónico <% = link_to "Activate", activar_email_users_url (email_token: @ user.email_token), método:: put%>
Esto da el siguiente error:
undefined method `protect_against_forgery?' for #So , the code <%= javascript_include_tag "application" %> is causing this error. Is there any way around this ?