什么是devise_mapping变量,我该怎么包含它? [英] what is the devise_mapping variable and how can I include it?

查看:128
本文介绍了什么是devise_mapping变量,我该怎么包含它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在我的Rails应用程序(Rails 2.3.8,Devise 1.0.7,在Windows Vista上运行的mongrel)上实现与Devise的身份验证。但是我收到以下错误:

 未定义的局部变量或方法`devise_mapping'for#< ActionView :: Base: 0x6d63890> 

这是当我使用自动生成的部分_devise_links.html。

 <% - 如果controller_name!='sessions'%> 
<%= link_to t('devise.sessions.link'),new_session_path(resource_name)%>< br />
<%end - %>

<% - 如果devise_mapping.registerable? &安培;&安培; controller_name!='registrationrations'%>
<%= link_to t('devise.registrations.link'),new_registration_path(resource_name)%>< br />
<%end - %>

<% - 如果devise_mapping.recoverable? &安培;&安培; controller_name!='passwords'%>
<%= link_to t('devise.passwords.link'),new_password_path(resource_name)%>< br />
<%end - %>

<% - 如果devise_mapping.confirmable? &安培;&安培; controller_name!='confirmations'%>
<%= link_to t('devise.confirmations.link'),new_confirmation_path(resource_name)%>< br />
<%end - %>

<% - 如果devise_mapping.lockable? &安培;&安培; controller_name!='unlocks'%>
<%= link_to t('devise.unlocks.link'),new_unlock_path(resource_name)%>< br />
<%end - %>

有关如何解决这个问题的任何想法?我假设devise_mapping变量没有被包含在我的视图中,但是我该怎么做?

解决方案

我意识到这个问题很古老,但我想我知道为什么你不能只是渲染这个部分。您尝试呈现的部分是部分显示在sign_in / sign_up表单下方的链接。



如果您要将这些链接添加到您的应用程序,这个Devise Wiki的页面将告诉你如何做,它涉及创建自己的部分。


I'm trying to implement authentication with Devise in my Rails application (Rails 2.3.8, Devise 1.0.7, mongrel running on Windows Vista). But I'm getting the following error:

undefined local variable or method `devise_mapping' for #<ActionView::Base:0x6d63890>

This is when I use the auto-generated partial _devise_links.html.

<%- 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 -%>

Any ideas on how to fix this? I'm assuming the devise_mapping variable is not getting included in my views, but what do I do about it?

解决方案

I realize this question is kind of old, but I think I figured out why you can't just render that partial. The partial you're trying to render is the partial for the links that show up below the sign_in/sign_up form.

If you'd like to add those links to your application, this page on the Devise Wiki will show you how to do it, and it involves creating your own partial(s).

这篇关于什么是devise_mapping变量,我该怎么包含它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆