电子邮件确认中的Rails路由错误

我是rails的新手,我正在尝试在注册时添加电子邮件确认。 我目前收到此错误。

任何冗长且易于理解的答案的奖励积分 。)

路由错误

没有路由匹配{:action =>“edit”,:controller =>“email_activations”,:id => false}

配置/ routes.rb中

LootApp::Application.routes.draw do get "password_resets/new" get "sessions/new" resources :users resources :sessions resources :password_resets resources :email_activations root to: 'static_pages#home' 

应用程序/邮寄者/ user_mailer.rb

 class UserMailer  user.email, :subject => "registered", :from => "alain@private.com") end end 

应用程序/控制器/ email_activations_controller.rb

 class EmailActivationsController  "Email has been verified." end end 

应用程序/视图/ user_mailer文件/ registration_confirmation.html.haml

请确认您的电子邮件地址!

= edit_email_activation_url(@ user.email_activation_token)

rails routes中的resources关键字是一个神奇的关键字,默认创建7条restful路由

edit就是其中之一

查看这些文档链接 http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions

编辑期望编辑记录,因此需要id才能找到要编辑的记录

在你的情况下

您只需在用户控制器中添加自定义操作即可

喜欢

在UsersController中

  def accept_invitation @user = User.find_by_email_activation_token!(params[:token]) @user.email_activation_token = true redirect_to root_url, :notice => "Email has been verified." end 

在routes.rb中

  resources :users do collection do get :accept_invitation end end 

在app / views / user_mailer / registration_confirmation.html.haml中

 accept_invitation_users_url({:token=>@user.email_activation_token}) 

查看如何在此处添加自定义路由http://guides.rubyonrails.org/routing.html#adding-more-restful-actions