Rails Devise 关闭注册功能后,自己添加的模板报错

richard_ma · 2014年07月26日 · 最后由 richard_ma 回复于 2014年07月26日 · 2345 次阅读

我在 application 的 layout 中有如下代码

<%= link_to "Sign up", new_user_registration_path %>

关闭 devise 注册功能后,重启了服务,打开首页报错:

undefined local variable or method `new_user_registration_path'

我知道这是由于关闭了 devise 的注册造成的,现在请给个解决办法。

理想的思路是,求个检测 devise 的注册功能是否开启的方法。

你是用什么方法关闭的

#1 楼 @billy 在 model 里去掉:registeration

哦,这么做路径会报错的。我建议你要么就把所有相关链接去掉,要么就覆盖 Devise 路径然后#new 和#create 里面加一个 redirect 逻辑,告诉用户现在不能注册。

#3 楼 @billy 但是我在 devise 的模板里找到了这样一个 if 语句,我觉得是可以做到检测注册是否开启的: if devise.mapping.registeration? or controller_name != 'registeration' do ... end

看到了,在 shared/_link 里面。应该是可以的,不妨试试。

#5 楼 @billy 多谢,我找到这部分代码了,还有一个小问题

<%- 这样的符号和 <%有什么区别吗?

@richard_ma 不客气。<%-是忽略空白行的,可以理解为<%差不多。一般直接用<%的多。

#7 楼 @billy 谢了,我试一下

需要 登录 后方可回复, 如果你还没有账号请 注册新账号