作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的 Rails 应用程序(Rails 2.3.8、Devise 1.0.7、在 Windows Vista 上运行的 mongrel)中使用 Devise 实现身份验证。但我收到以下错误:
undefined local variable or method `devise_mapping' for #<ActionView::Base:0x6d63890>
<%- if controller_name != 'sessions' %>
<%= link_to t('devise.sessions.link'), new_session_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
<%= link_to t('devise.registrations.link'), new_registration_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
<%= link_to t('devise.passwords.link'), new_password_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
<%= link_to t('devise.confirmations.link'), new_confirmation_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.lockable? && controller_name != 'unlocks' %>
<%= link_to t('devise.unlocks.link'), new_unlock_path(resource_name) %><br />
<% end -%>
最佳答案
您可以将辅助方法添加到 ApplicationHelper
.确保使用正确的型号名称(在我的例子中它是 :user
代表 User
型号)。
def devise_mapping
Devise.mappings[:user]
end
def resource_name
devise_mapping.name
end
def resource_class
devise_mapping.to
end
devise_mapping
现在存储在请求中:
# Attempt to find the mapped route for devise based on request path
def devise_mapping
@devise_mapping ||= request.env["devise.mapping"]
end
resource_name
别名为
scope_name
以及。见
devise_controller.rb了解更多信息。
关于ruby-on-rails - 什么是 devise_mapping 变量,如何包含它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541075/
devise_mapping.registerable?, devise_mapping.recoverable?....来自哪里?我的意思是我找不到指示它们的文件,找不到任何关于它们的信息。 为什么
我正在尝试在我的 Rails 应用程序(Rails 2.3.8、Devise 1.0.7、在 Windows Vista 上运行的 mongrel)中使用 Devise 实现身份验证。但我收到以下错误
我是一名优秀的程序员,十分优秀!