Модель второго устройства не использует сгенерированные представления - PullRequest
4 голосов
/ 30 ноября 2011

У меня есть модель пользователя и представителя

devise_for :users, :controllers => {:registrations => 'user_registration'}
devise_for :reps

Я побежал

rails generate devise:views reps

Пользовательские представления отображаются в приложении / views / reps

Но пути повторов по-прежнему используют встроенные представления устройства

Оказано ~ / .rvm / gems / ruby-1.9.2-p290 / gems / devise-1.4.9 / app / views / devise / registrations / edit.html.erb

Вместо сгенерированных представлений повторений.

Ответы [ 3 ]

26 голосов
/ 03 января 2012

У меня была такая же проблема.В конечном итоге я заметил это в документации.

Если в вашем приложении более одной роли (например, «Пользователь» и «Администратор»), вы заметите, что Devise использует одни и те же представления для всехроли.К счастью, Devise предлагает простой способ настройки представлений.Все, что вам нужно сделать, это установить «config.scoped_views = true» внутри «config / initializers / devise.rb».

Поэтому я переключил config.scoped_views в true, и это сработало :)

8 голосов
/ 30 ноября 2011

Просто разместив там представления, Devise не будет их использовать. Вам нужно указать Devise::RegistrationsController на правильный контроллер, который имеет эти представления, что вы можете сделать, вызвав это:

 devise_for :reps, :controllers => { :registrations => "reps/registrations" }

Для этого необходимо, чтобы новый контроллер был определен в app/controllers/reps/registrations_controller.rb:

 class Reps::RegistrationsController < Devise::RegistrationsController

 end

После этого у вас будут представления в правильном каталоге для использования этим контроллером.

0 голосов
/ 29 августа 2012

У меня фактически была та же проблема, и я понял, что названия моделей чувствительны к регистру. Я использовал команду

rails generate devise:views Admins

Вместо

rails generate devise:views admins

и он создал папку в '/ app / views / Admins', но искал пользовательский вид в 'app / views / admins'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...