Как сделать так, чтобы по умолчанию на моей домашней странице приложения регистрировался пользователь, а не входил в систему с помощью devise? - PullRequest
1 голос
/ 25 октября 2011

Я использую Rails 3 и разрабатываю и пытаюсь сделать так, чтобы, когда человек заходит в мое веб-приложение, его перенаправляют непосредственно на ссылку регистрации пользователя вместо ссылки входа.

Я почти уверен, что у меня возникла эта проблема, потому что мои маршруты настроены так:

root :to => "babies#new" 

Для доступа к модели ребенка требуется, чтобы пользователь вошел в систему. Чтобы обойти этоЯ попытался изменить это на:

root: to => "users # sign_up"

Это не похоже на работу?Я получаю сообщение об ошибке: 1010

uninitialized constant UsersController
1012 * Кто-нибудь может подсказать, что я делаю не так?

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 25 октября 2011

Одним из решений является создание отдельного контроллера, скажем main, и действия в нем sign_up_redirect.Затем настройте файл маршрутов следующим образом:

root :to => "main#sign_up_redirect"

и напишите в этом действии следующее:

redirect_to new_user_registration_path

* путь к регистрации может отличаться от вас

0 голосов
/ 25 октября 2011

Если вы не определяете маршруты разработки, root :to => 'users#sign_up' не существует.Я также настоятельно рекомендую не указывать любой маршрут Devise в качестве корневого, так как все перехватчики Devise перенаправляют на root, т.е.after_sign_up, after_sign_in, after_update.Я думаю, что для достижения желаемого результата у вас есть два варианта.

Во-первых, просто разместите форму регистрации на странице в корневом URL-адресе.Вы можете следовать логике в этом руководстве, чтобы выполнить это, явно переходя от входа в систему к регистрации.

Второй вариант, который легко приходит на ум, - это создать сквозной контроллер, который просто имеетиндексное действие, которое перенаправляет на страницу регистрации.Нечто подобное может выглядеть следующим образом.

class PassthroughController < ApplicationController

  def index
    redirect_to 'devise/registrations#new'
  end

end

Любой из этих вариантов достаточно прост для реализации.

0 голосов
/ 25 октября 2011

Следующая ошибка возникает, когда соответствующий контроллер не найден.Вы должны проверить, используете ли вы UsersController или UserController

uninitialized constant UsersController
...