2016-09-29 89 views
0

我试图工作设计可确认的电子邮件,但现在错误出现,它不起作用(在变化之前,它运作良好)。未定义的本地变量或方法`root_path'为#<#<Class:0xc0d0c44>:0xc0be918>

如果有人可以帮助我识别它,我会很感激。

我只是试图:注册人数http://www.bogotobogo.com/RubyOnRails/RubyOnRails_Devise_Authentication_Sending_Confirmation_Email.php

NameError#创建

未定义的局部变量或方法`root_path”为#<#:0xc0be918> 你是什么意思? font_path

在视图大关,之后尝试注册:

<li><%= link_to "Start", root_path %></li> 

在路线:

Rails.application.routes.draw do 

    devise_for :usuarios, controllers: {registrations: 'registrations', omniauth_callbacks: "omniauth_callbacks"} 

    root 'welcome#index' 
    get "welcome/index" 

    get ':controller(/:action(/:id))(.:format)' 
    post ':controller(/:action(/:id))(.:format)' 

end 

app/views/devise/mailer/confirmation_instructions.html.erb:12:in `_app_views_devise_mailer_confirmation_instructions_html_erb___614633226_' 
app/controllers/registrations_controller.rb:6:in `create' 

耙路线

       Prefix Verb  URI Pattern        Controller#Action 
       new_usuario_session GET  /usuarios/sign_in(.:format)    devise/sessions#new 
        usuario_session POST  /usuarios/sign_in(.:format)    devise/sessions#create 
      destroy_usuario_session DELETE /usuarios/sign_out(.:format)    devise/sessions#destroy 
        usuario_password POST  /usuarios/password(.:format)    devise/passwords#create 
       new_usuario_password GET  /usuarios/password/new(.:format)   devise/passwords#new 
       edit_usuario_password GET  /usuarios/password/edit(.:format)   devise/passwords#edit 
            PATCH /usuarios/password(.:format)    devise/passwords#update 
            PUT  /usuarios/password(.:format)    devise/passwords#update 
     cancel_usuario_registration GET  /usuarios/cancel(.:format)     registrations#cancel 
       usuario_registration POST  /usuarios(.:format)      registrations#create 
      new_usuario_registration GET  /usuarios/sign_up(.:format)    registrations#new 
      edit_usuario_registration GET  /usuarios/edit(.:format)     registrations#edit 
            PATCH /usuarios(.:format)      registrations#update 
            PUT  /usuarios(.:format)      registrations#update 
            DELETE /usuarios(.:format)      registrations#destroy 
       usuario_confirmation POST  /usuarios/confirmation(.:format)   devise/confirmations#create 
      new_usuario_confirmation GET  /usuarios/confirmation/new(.:format)  devise/confirmations#new 
            GET  /usuarios/confirmation(.:format)   devise/confirmations#show 
usuario_facebook_omniauth_authorize GET|POST /usuarios/auth/facebook(.:format)   omniauth_callbacks#passthru 
usuario_facebook_omniauth_callback GET|POST /usuarios/auth/facebook/callback(.:format) omniauth_callbacks#facebook 
           root GET /          welcome#index 
         welcome_index GET  /welcome/index(.:format)     welcome#index 
            GET  /:controller(/:action(/:id))(.:format)  :controller#:action 
            POST  /:controller(/:action(/:id))(.:format)  :controller#:action 

环境:

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } 
    config.action_mailer.perform_deliveries = true 

    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    user_name:  ENV['uclave.cdcht'], 
    password:  ENV[''], 
    domain:   ENV['gmail'], 
    address:  'smtp.gmail.com', 
    port:   '587', 
    authentication: :plain, 
    enable_starttls_auto: true 
    } 

用户= USUARIOS(西班牙)

+1

可以请你发布'耙路线'的结果吗 –

+0

你能不能包括你的routes.rb –

+0

@Deepak有。我正在编辑帖子。 –

回答

2

在您的邮件发生的错误。您不能在Mailer中使用_path帮助程序(因为它会生成一个类似“/”的URL,这在邮件中单击时不起作用)。

取而代之,您必须使用_url助手。假设你已经设置了config.action_mailer.default_url_options = { host: 'example.com' }(应该在config/application.rb),那么更改你的邮件使用root_url就足够了。

相关问题