【发布时间】:2017-03-07 18:38:34
【问题描述】:
这篇文章是指Devise wiki中的以下操作指南:要求管理员在登录前激活帐户
我已经为我的应用设置了 Devise 身份验证,没有任何问题,并且一切正常。
但是,由于该应用仅供内部使用,我想要求管理员在登录前激活新帐户。
因此,我一直在尝试按照“操作方法”文章中的分步说明进行操作,但遇到了一些我想澄清的问题:
1) 模型更改:
在模型更改下,要求:
“然后,在你的模型(User.rb)中覆盖以下方法:”
def active_for_authentication?
super && approved?
end
def inactive_message
if !approved?
:not_approved
else
super # Use whatever other message
end
end
-> 我的困惑来自“覆盖”这个词的使用。我应该简单地将它添加到 model/user.rb 文件中吗?无需其他更改。
以下步骤要求您:
"您需要在 i18n 文件中为 :not_approved 和 :signed_up_but_not_approved 创建一个条目,该文件位于 config/locales/devise.##.yml:"
devise:
registrations:
user:
signed_up_but_not_approved: 'You have signed up successfully but your account has not been approved by your administrator yet'
failure:
not_approved: 'Your account has not been approved by your administrator yet.'
-> 我的问题是关于如何正确地将它们添加到 yml 文件中。我是将它集成到现有代码中(即,在现有注册下添加 user:... :),还是简单地将其添加到顶部 - 包括“设计:”?
2) 控制器和视图
第一部分要求人们执行以下操作:
“您需要创建一个仅管理员可访问的控制器方法,它列出未批准的用户并提供一种简单的批准方法。”
-> 我的问题是我们在谈论哪个控制器? Devise 不会创建一个可编辑的控制器...我是生成一个名为 user_controller 的控制器还是会与设计中的控制器发生冲突?
-> ...在这种情况下,它是否应该从设计控制器继承?
-> 或者,我可以将代码完全添加到另一个控制器中,然后用于访问新方法吗?不喜欢这样做,因为它会弄乱我现有的控制器之一...
-> 还提到了一个 index.html.haml,其中一个是添加代码以显示来自用户模型的信息。这个页面(我的版本是 html.erb)可以在任何你想显示用户状态信息的地方,只要它可以访问新的用户控制器方法吗?
3) 电子邮件通知
-> 一切似乎都很清楚......这里有什么我应该考虑使用的电子邮件地址吗?在设置设计时,我添加了我的 gmail 地址作为临时措施。这会使事情复杂化吗?
4) 重置密码说明
-> 一切似乎都很清楚......添加到: app/models/user.rb
-> 评论:似乎向 user.rb 模型添加了很多东西。?
这是一个相当多的列表,但如果有人可以帮助我,我保证会创建并发布一个更加用户友好的指南版本......任何新手都应该能够成功使用的版本。
谢谢!
【问题讨论】:
标签: ruby-on-rails devise