salut! C'est Yori-goreng qui apprend Rails: sunny:
Dans cet article, nous présenterons l'introduction de devise
, qui contrôle la fonction de connexion, et les autorisations des utilisateurs: détendu:
Si vous souhaitez en savoir plus, consultez les articles de référence suivants.
--Article de référence
https://qiita.com/cigalecigales/items/f4274088f20832252374
https://qiita.com/tobita0000/items/866de191635e6d74e392
L'un des joyaux de Ruby, «devise», facilite la mise en œuvre de la fonctionnalité de connexion.
Créez une application avec rails new app name
.
Pour l'instant, appelons-le devise_test.
rails new devise_test
cd devise_test
rails db:create
Ajoutez la gemme de devise à gemfile
gem 'devise'
Installez gem.
bundle install
rails g devise:install
Si vous voyez une longue phrase comme celle ci-dessous dans votre terminal, vous avez réussi.
===============================================================================
Some setup you must do manually if you haven't yet:
1.Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
In production, :host should be set to the actual host of your application.
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root to: "home#index"
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
4.You can copy Devise views (for customization) to your app by running:
rails g devise:views
===============================================================================
Créez un modèle utilisateur avec la commande suivante.
rails g devise user
L'exécution d'une migration à ce stade complète une simple page de connexion.
rails db:migrate
rails s
Après rails s
, ouvrez la page de connexion à l'adresse http: // localhost: 3000 / users / sign_in.
2.4. before_action :authenticate_user!
Si vous écrivez before_action: authenticate_user!
Dans le contrôleur, le traitement effectué ici ne peut être exécuté que par l'utilisateur connecté.
Par exemple, créez un contrôleur Homes.
rails g controller homes index
Ajoutez before_action: authenticate_user!
Au homes_controller.rb
créé.
app/controllers/home_controller.rb
class HomesController < ApplicationController
before_action :authenticate_user!
def index
end
end
Cela permet uniquement à l'utilisateur connecté de voir l'affichage de la liste par l'action d'indexation.
Recommended Posts