2012-02-24 52 views
9

我想使用我的設計生成的視圖(命令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/

所以意見我應該怎麼辦? 謝謝。

+0

您是否在'app/views/users'或'app/views/users/sessions'中查看了您的視圖? – 2012-02-24 15:19:46

+0

Tom L,[是](http://stackoverflow.com/questions/9432946/cant-override-default-devise-gem-views#comment11927719_9432946) – user973254 2012-02-24 15:21:57

+0

對不起,你回覆了我改變我的問題,因爲它是一個dup納什的。 – 2012-02-24 15:25:41

回答

2

對於自定義登錄視圖,當您使用默認的User設計資源時,我認爲您所需要的只是創建app/views/devise/sessions/new.html.erb。而且,就目前而言,讓我們忘記了CRUD界面。並撤消那些config/initializers/devise.rb設置。只要看看你能否得到這個工作。

+0

這種組合的作品,但我不明白爲什麼我不工作。我真的需要工作範圍。 – user973254 2012-02-24 17:16:37

+0

所以這是工作。涼。如果你想CRUD,你需要的只是通常的控制器和視圖。除非你有多種設計用戶,否則我認爲你不需要調整範圍。 – 2012-02-24 18:13:01

+0

但我仍然很感興趣,我怎麼才能讓示波器工作。 – user973254 2012-02-26 10:14:48

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" %>並且您已設置!

+0

這就是我的答案)早期沒有範圍設置,devise默認覆蓋默認視圖。 – 2018-01-23 09:34:17