Настройка разрабатывать видом на рельсы
Я использую devise для аутентификации пользователя, но у меня есть хорошие макеты для регистрации, входа в систему и т. д. страницы.
Я уже сделал rails generate devise:views User
команда и есть все представления в папке views, однако, когда я заменил регистрацию / new.формат html.Эрб с моей собственной новой.формат html.Эрб, ничего не меняется и не выглядит по-другому. Как будто я что-то сделал.
кто-нибудь знает что я делаю неправильно или, по крайней мере, как успешно настроить разработать вид
П. С. Важно отметить, что я изменен маршрут разработать/регистраций#новое /регистрации?
8 ответов:
маршрут
signup
илиdevise/registrations#new
рендерим представлениеviews/devise/registrations/new.html.erb
. Это звучит, как вы сделали изменения вviews/user/registrations/new.html.erb
, что могло бы объяснить почему вы не видите изменения, внесенные с момента его не отображается.вам нужно будет либо создать
user/registrations_controller.rb
что простирается отDevise::RegistrationsController
и точка/signup
маршрут доuser/registrations#new
, или вы можете просто внести изменения прямо вviews/devise/registrations/new.html.erb
то же самое относится и к вашему логину (
devise/sessions
) страниц.надеюсь, что это помогает.
С первого взгляда ответ.
...вместо
rails generate devise:views User
использование:
rails generate devise:views
если вы уже сделали это, переместите папки devise, созданные из
app/views/User
новая папкаapp/views/devise
(или просто переименовать
хотя это старый вопрос, я подумал, что добавлю к нему, если кто-нибудь наткнется на него. Я не уверен, что это новое дополнение, так как вопрос был первоначально задан, но если это так, то это более простой (более современный) подход.
в файле
config/initializers/devise.rb
есть следующий блок кода:# ==> Scopes configuration # Turn scoped views on. Before rendering "sessions/new", it will first check for # "users/sessions/new". It's turned off by default because it's slower if you # are using only default views. # config.scoped_views = false
, раскомментировав
config.scoped_views = false
и изменение его значения наtrue
, devise автоматически проверит, существует ли пользовательский вид, и если да, то подавайте это. Как говорится это добавляет некоторые накладные расходы на приложение, но по моему опыту до сих пор это минимально.
для тех, кто все еще имеет проблемы с этим, проблема заключается в вызове
rails generate devise:views User
. Он должен быть!--1--> для извлечения текущих представлений из механизма Devise Rails. Это создаст правильные представления, которые будут работать с маршрутами по умолчанию.
после создания пользовательских представлений, например
rails generate devise:views User
поворот на
scoped_views
наconfig/initializer/devise.rb
view config.scoped_views = true
и вы сделали.
используя
rails g devise:views User
позволяет настроить, когда у вас есть более чем одна роль.правильный способ сделать это, зайдя в свой
devise.rb
inconfig/initializer/
папкуи раскомментирование и установка
config.scoped_views = true
.теперь вы можете редактировать файлы view erb без каких-либо проблем
у меня была та же проблема, пока я не вернулся и не прочитал документацию devise :)
после
rails generate devise:views
убедитесь, что вы идете вinitializers/devise.rb
и setconfig.scoped_views = true
. Это объясняется в документации по разработке по адресу https://github.com/plataformatec/devise а также вdevise.rb
комментарии.после того, как я сделал это, мои собственные взгляды в
views/users
начал появляться вместо тех, что в драгоценном камне.