【问题标题】:rails 3.1 devise confirmablerails 3.1 设计可确认
【发布时间】:2011-11-18 05:25:54
【问题描述】:

我已经使用 devise 设置了 rails,但是当我将可确认模块添加到我的应用程序时,我无法让我的身份验证工作。我在我的用户模型中包含了可确认模块,并在我的迁移文件中包含了未注释的可确认和 add_index 确认令牌。回滚数据库并重新注释这些后,身份验证按指定工作。

我也检查过,我无法退出应用程序,即使我提供了 我的应用程序出现路由错误,没有路由匹配 [GET]用户/sign_out。当我运行 rake 路线时,这条路线可供我使用

destroy_user_session DELETE /users/sign_out(.:format)      {:action=>"destroy", :controller=>"devise/sessions"}  

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 authentication devise


    【解决方案1】:

    不确定可确认部分,但我可以告诉您,您使用的链接正在调用 GET 方法。如您所见,要退出,您需要在链接中使用 DELETE 方法,如下所示:

    <%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
    

    如果您想专门使用 GET 进行注销,请查看设计初始化文件;在底部的某处,您会看到有关注销的信息,默认方法是:delete。把这条线放在那里:

    config.sign_out_via = :get
    

    【讨论】:

    • 我认为这是问题所在,但是当 rake 路由路径另有说明时,我不确定如何将方法切换为删除。
    • :method => delete 绝对是解决方案,因为我遇到了同样的问题。
    【解决方案2】:

    我应用的解决方法如下:我与蓝图框架发生冲突,因为它已经提供了警报和通知类。如果您查看 devise 的 wiki,它将有一个处理此问题的小节。然后为了确认一个新用户,我进入控制台,找到第一个用户,并使用提供的确认!设计在其文档中的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多