2023-08-11 03:56PM
1. 先创建一个用户表
2. 在这个表中增加下面的内容
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :login
t.string :password
t.timestamps
end
end
end
3. 然后在这个表中增加一条数据,方便我们继续往下进行(打开rails console,在里面为表增加一条数据)
user = User.create(login: "user", password: "1234")
4. 然后在config/routes.rb文件中,增加路由
resources :users do
collection do
get :show_login_page
post :login
delete :logout
end
end
5. 创建对应的controller文件,然后在里面增加下面的内容
class UsersController < ApplicationController
def show_login_page
end
def login
login = params[:login]
password = params[:password]
user = User.where('login = ?', login).last
# 如果用户存在
if user.present?
# 判断密码是否正确
if user.password == password
# 当前用户是正确登录的
session[:current_user] = user
session[:is_user_login] = '管理员登录了!'
Rails.logger.info "=== '登录成功'"
redirect_to '/articles' and return
else
Rails.logger.info "=== 用户名对,密码不对"
end
else
Rails.logger.info "=== '用户名不对'"
end
Rails.logger.info "=== '用户名与密码不匹配'"
redirect_to :back, notice: '用户名与密码不匹配'
end
def logout
session[:current_user] = nil
session[:is_user_login] = '尚未登录'
Rails.logger.info "=== '退出成功'"
redirect_to '/articles'
end
end
6. 创建对应的models文件
class User < ActiveRecord::Base
end
7. 创建对应视图文件
<p>请登录</p>
<%= form_tag "/users/login", method: 'post' do %>
用户名: <%= text_field_tag "login", "" %> <br/>
<p></p>
密码: <%= text_field_tag "password", ""' %> <br/>
<p></p>
<%= submit_tag "提交" %>
<% end %>
8. 然后再index 页面增加登录退出按钮(也可以增加在app/views/layout/application.html.erb文件中,我这边增加在了application.html.erb文件)
<div>
<% if session[:current_user].blank? %>
<%= link_to '登录', '/users/show_login_page' %>
<% else %>
<%= link_to '退出', '/users/logout', method: :delete %>
<% end %>
<%= link_to '主页', articles_path %>
</div>
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论