routes.rb ファイルに次のコードがあります。
resources :users do
member do
get :following,:followers
end
collection do
put :activate_email
end
end
そして、私は次のようなユーザーの電子メールアクティベーションリンクを持っています:
<%= link_to "Activate",activate_email_users_url(email_token: @user.email_token),method: :put %>
アクティベート リンクをクリックすると、これが生成される URL です
http://localhost:3000/users/activate_email?email_token=WWNvMN-r_lXgovrQiDlSSQ
更新: わかりました。問題が何であるかはわかっていると思います。link_to を含む Gmail のアクティベーション メールの HTML ソースを見ると、何もありません。
data-method='put'. それが問題のようです。PUT ではなく、常にデフォルトの GET リクエストを送信しています。これは私の user_mailer/registration_confirmation.html.erb ファイルです
<%= javascript_include_tag "application" %>
</head>
次のリンクをクリックしてメールを有効にしてください <%= link_to "Activate",activate_email_users_url(email_token: @user.email_token), method: :put %>
これにより、次のエラーが発生します。
未定義のメソッド「protect_against_forgery?」為に #がこのエラーを引き起こしています。これを回避する方法はありますか?したがって、コード <%= javascript_include_tag "application" %>