【问题标题】:undefined local variable or method `resource_reset_password_token'未定义的局部变量或方法“resource_reset_password_token”
【发布时间】:2018-04-19 21:23:48
【问题描述】:

我正在尝试为我的 Rails 5.1.4 开发环境设置 Devise gem。我遵循了各种示例,但仍然遇到同样的问题。

一旦我想提醒忘记的密码,我会收到 未定义的局部变量或方法 `resource_reset_password_token' 错误。一旦未配置邮件程序,就会出现相同的错误。以下是一些细节:

1.错误详情

N设计中的ameError::Passwords#create 显示 /home/mk/thebest/app/views/devise/mailer/reset_password_instructions.html.erb 其中第 6 行提出: # 的未定义局部变量或方法“resource_reset_password_token” 你的意思是? resolve_assets_with 提取的源代码(第 6 行附近):

<p><%= link_to t('.action'), edit_password_url(@resource, :reset_password_token => resource_reset_password_token) %></p>

2。 config/environments/development.rb

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp

  config.action_mailer.smtp_settings = {
    address: "smtp.gmail.com",
    port: 587,
    domain: ENV["GMAIL_DOMAIN"],
    authentication: "plain",
    enable_starttls_auto: true,
    user_name: ENV["GMAIL_USERNAME"],
    password: ENV["GMAIL_PASSWORD"]
   }

3.环境变量 我已经通过以这种方式添加它们来定义我的环境变量:

sudo -H gedit /etc/environment

GMAIL_DOMAIN="gmail.com"
GMAIL_USERNAME="hereismyemail@gmail.com"
GMAIL_PASSWORD="hereismypassword"

没有配额也不行

4.我还允许在 gmail 中访问

使用 http://www.google.com/accounts/DisplayUnlockCaptcha

5.环境

输入 ENV 命令我可以看到我的环境变量设置正确

请支持

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    试试

    <p><%= link_to t('.action'), edit_password_url(@resource, :reset_password_token => @token) %></p>
    

    来自这个帖子 -> https://github.com/plataformatec/devise/issues/4446

    【讨论】:

    • 但这意味着Devise有错误,我必须更改现有代码?在这种情况下,我会发现很多这样的问题......但无论如何我都会尝试
    • 你使用什么设计版本?
    • 您已生成视图,因此我决定您对其进行一些更改
    • 我没有在这个特殊的地方做任何改变。我所做的是在其他视图中添加引导程序。但是:它有效!谢谢!我正在使用设计 4.3
    • 当你告诉我这一切时......我对我的解决方案不太满意,但很高兴它对你有所帮助
    猜你喜欢
    • 2017-01-26
    • 2015-01-01
    • 2013-12-17
    • 2016-04-29
    • 2018-04-21
    • 2015-12-26
    相关资源
    最近更新 更多