Настройка разрабатывать видом на рельсы
Я использую 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.rbview config.scoped_views = trueи вы сделали.
используя
rails g devise:views Userпозволяет настроить, когда у вас есть более чем одна роль.правильный способ сделать это, зайдя в свой
devise.rbinconfig/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начал появляться вместо тех, что в драгоценном камне.