无法覆盖默认设计gem视图

时间:2012-02-24 15:05:30

标签: ruby-on-rails ruby-on-rails-3 devise views gem

我想在rails g devise:views users中使用我的设计生成视图(使用命令app/views/users)。

我已经从app/initializers/devise.rb设置了这些选项:

config.scoped_views = true
config.default_scope = :user

但它仍使用/usr/lib/ruby/gems/1.8/gems/devise-2.0.4/app/views/devise/

中的默认设计视图

那我该怎么办? 感谢。

2 个答案:

答案 0 :(得分:9)

我遇到了同样的问题,我花了很长时间才弄明白。设置config.scoped_views = true是第一步,但还有另一个步骤不太明确。

如果仔细查看由rails g devise:views users生成的一些视图,您会发现文件底部的模板包含<%= render "devise/shared/links" %>。由于您已生成这些视图,因此共享链接现在位于users/shared/links中。由于设计在devise/shared/links中找不到任何内容,因此它使用默认链接视图。

<%= render "devise/shared/links" %>更改为<%= render "users/shared/links" %>,然后设置好了!

答案 1 :(得分:2)

对于自定义登录视图,当您使用默认的User设计资源时,我认为您只需创建app/views/devise/sessions/new.html.erb即可。而且,就目前而言,让我们忘记CRUD界面。并撤消这些config/initializers/devise.rb设置。看看你能不能正常工作。