繁体   English   中英

使用Rails和Devise的未定义局部变量或方法

[英]Undefined local variable or method with Rails & Devise

Rails 3.2
Devise
Devise security extensions

在我的app / views / users / shared / _links.slim中,我具有:

- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
  li.home-nav= link_to t('users.shared.didnt_received_unlock'), new_unlock_path(resource_name)

在我的用户模型中,我有:

devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable,  :invitable, :confirmable,
     :password_expirable, :password_archivable, :session_limitable, :expirable, :secure_validatable,
     :lockable, :timeoutable

当用户尝试登录时,出现以下错误:

NameError( resource_class' for #<#<Class:0x000000098a1598>:0x000000092d4b60>): app/views/users/shared/_links.slim:5:in未定义局部变量或方法resource_class' for #<#<Class:0x000000098a1598>:0x000000092d4b60>): app/views/users/shared/_links.slim:5:in _app_views_users_shared__links_slim___1531266065579142927_70700660'app / views / layout。苗条:96:在_app_views_layouts_application_html_slim___452855375923455357_79638440' app/middleware/catch_json_parse_errors.rb:8:in call'

有任何想法吗?

resource_class仅在Devise控制器中可用,而在_links.slim视图中不可用。 使用User.unlock_strategy_enabled?(:email)代替

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM