Настройка разрабатывать видом на рельсы


Я использую devise для аутентификации пользователя, но у меня есть хорошие макеты для регистрации, входа в систему и т. д. страницы. Я уже сделал rails generate devise:views User команда и есть все представления в папке views, однако, когда я заменил регистрацию / new.формат html.Эрб с моей собственной новой.формат html.Эрб, ничего не меняется и не выглядит по-другому. Как будто я что-то сделал.

кто-нибудь знает что я делаю неправильно или, по крайней мере, как успешно настроить разработать вид

П. С. Важно отметить, что я изменен маршрут разработать/регистраций#новое /регистрации?

8 62

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 in config/initializer/ папку

и раскомментирование и установка config.scoped_views = true.

теперь вы можете редактировать файлы view erb без каких-либо проблем

у меня была та же проблема, пока я не вернулся и не прочитал документацию devise :)

после rails generate devise:views убедитесь, что вы идете в initializers/devise.rb и set config.scoped_views = true. Это объясняется в документации по разработке по адресу https://github.com/plataformatec/devise а также в devise.rb комментарии.

после того, как я сделал это, мои собственные взгляды в views/users начал появляться вместо тех, что в драгоценном камне.

для дальнейшего использования вы можете просто переименовать папку из devise = > user и наоборот, и rails найдет маршрут.