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 ?

Respuestas a la pregunta(2)

Su respuesta a la pregunta