2012-02-24 15 views
9

Quiero usar mis vistas generadas por el diseño (con el comando rails g devise:views users) desde app/views/users.No se pueden anular las vistas predeterminadas de la gema

que ya han establecido estas opciones de app/initializers/devise.rb:

config.scoped_views = true 
config.default_scope = :user 

pero todavía utiliza por defecto idear vistas desde /usr/lib/ruby/gems/1.8/gems/devise-2.0.4/app/views/devise/

Entonces, ¿qué debería hacer? Gracias.

+0

¿Están sus vistas en 'app/views/users' o' app/views/users/sessions'? –

+0

Tom L, [sí] (http://stackoverflow.com/questions/9432946/cant-override-default-devise-gem-views#comment11927719_9432946) – user973254

+0

Lo siento, respondió mientras cambiaba mi pregunta, ya que era un duplicado de nash's –

Respuesta

2

Para una vista de inicio de sesión personalizado, cuando está utilizando el recurso de diseño predeterminado User, creo que todo lo que necesita es crear app/views/devise/sessions/new.html.erb. Y, solo por el momento, olvidemos la interfaz CRUD. Y deshacer esos config/initializers/devise.rb ajustes. Solo mira si puedes hacer que funcione.

+0

Esa combinación funciona, pero no puedo entender por qué mi no funciona. Realmente necesito ámbitos de trabajo. – user973254

+0

Eso está funcionando. Guay. Si quieres CRUD, todo lo que necesitas es el controlador y las vistas habituales. No creo que deba perder el tiempo con los alcances a menos que tenga más de un tipo de usuario de diseño. –

+0

Pero sigue siendo interesante cómo puedo hacer que los ámbitos funcionen. – user973254

9

Estaba teniendo el mismo problema y me tomó mucho tiempo resolverlo. La configuración config.scoped_views = true es el primer paso, pero hay otro paso que no está tan claro.

Si observa detenidamente algunas de las vistas generadas por rails g devise:views users, verá que las plantillas incluyen <%= render "devise/shared/links" %> en la parte inferior del archivo. Dado que ha generado estas vistas, los enlaces compartidos ahora se encuentran en users/shared/links. Como el dispositivo ya no encuentra nada en devise/shared/links, utiliza la vista de enlaces predeterminada.

Cambia <%= render "devise/shared/links" %> a <%= render "users/shared/links" %> y listo!

+0

Esa fue la respuesta para mí). Temprano no había ninguna configuración de alcance y el diseño ha anulado las vistas predeterminadas de forma predeterminada. –

Cuestiones relacionadas