Ответ 1
Теперь Devise теперь совместим с Rails 4 из коробки с момента ответа.
Наша цель заключается в том, чтобы пользователи могли регистрироваться, регистрироваться и выходить с интернет-сайта. Мы также создадим небольшое частичное представление, сообщающее нам, если мы вошли в систему или вне его.
Установите драгоценный камень разработки.
Откройте Gemfile
и установите драгоценный камень.
gem 'devise'
Затем в вашем терминале запустите команду bundle install
, чтобы установить драгоценный камень.
$ bundle install
Запустите некоторые генераторы Devise для настройки начальных конфигураций.
Запустите эту команду с вашего терминала:
rails generate devise:install
Этот генератор устанавливает инициализатор, который настраивает все доступные настройки.
Создайте модель пользователя.
Далее нам нужно сгенерировать нашу модель User. Я назову его User
, но вы можете назвать его как хотите, просто замените User
на Whatever
.
rails generate devise User
rake db:migrate
Настройте свой URL-адрес по умолчанию для Development.rb
Внутри config/environments/development.rb
установите по умолчанию URL-адрес Action Mailer в localhost:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
Убедитесь, что у вас есть корневой маршрут, объявленный в Routes.rb
Вам нужно убедиться, что routes.rb
имеет корневой путь по умолчанию - если у вас его нет, установите его!
root to: 'home#index'
Создайте частичный вид, чтобы узнать, вошли ли мы в систему.
Внутри вашей папки views/layouts
создайте файл с именем _user_widget.html.erb
и скопируйте этот код в:
<% if user_signed_in? %>
<p>Welcome <%= current_user.email %></p>
<%= link_to 'Logged In [click to logout]', destroy_user_session_path, :method => :delete %>
<% else %>
<p>You are not signed in.</p>
<%= link_to 'Login', new_user_session_path %>
<% end %>
И запустите его в своем макете (views/layouts/application.html.erb
):
<!DOCTYPE html>
<html>
<head>
<title>FacebookAuthTest</title>
<%= stylesheet_link_tag "application", media: "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
<%= render 'layouts/user_widget' %>
</body>
</html>
Убедитесь, что вы остановили и перезапустили сервер, иначе вы найдете всевозможные неприятные ошибки! Всегда лучше перезапустить локальный сервера при обновлении gemfile или изменении чего-либо в файл конфигурации среды.
Со всем этим на месте вы сможете зарегистрироваться, войти и выйти из своего собственного веб-сайта Rails.
Если у вас есть вопросы, вы можете оставить комментарий ниже, и я постараюсь помочь.